Migration from ES 6.8 to 7.17 : Issues with negative date epoch timestamp

Hi Guys
We are migrating our applications from 6.8 ES cluster to 7.17.10 ES cluster . The one thing which we identified is that the negative values are not supported for date type fields( "format": "epoch_millis") . Is there any way to make it support in 7.17.10 ? because we see this PR to support this support negative epoch_millis timestamps by rkophs · Pull Request #80208 · elastic/elasticsearch · GitHub which looks like fixed in ES 8.XX versions . Can someone guide me how we can resolve this issue . we can't change the data type of this field . Also is there any way in ES to lets say disable template validation specific to one field . Please suggest which is the better way to handle this issue ?

Hi @Abhilashsr2008,

Digging through the issue you cite and the related documentation issue it looks like negative timestamps are supported as of version 8.2.0. Is there a reason you are not able to upgrade?

The other option I can think of is using the ignore_malformed attribute on your field until you can upgrade.

Thanks @carly.richmond for the comments . Yes we are planning for 8.XX upgrade soon but few other apps still need support from ES 8.XX which we are waiting to complete . Once thats done the idea is to move to latest Elastic search . This is an intermediate solution we are looking for. Also lets say we have a index in ES 6.8 where the date field has negative values and when we do the rolling upgrade to 7.17 , the old index will have some problem right since the old index had negative values and new ES 7.17 doesn't support it . or is it like the existing data in ES 6.8 will not have any issue during rolling upgrade and new data insertion to ES 7.17 with negative values for date fields will have a problem

Yes you will have a validation problem on the field with the negative values. For a temporary workaround I would have a look at ignore_malformed as listed above.

yes thanks @carly.richmond . So what am thinking , may be before the rolling upgrade , i will add ignore_malformed property to the current index template in 6.8 ES and then do the rolling upgrade to 7.17 ES. is this approach good ? so in that way during rolling upgrade i shouldn't get any issues . what do you think

I would check the data is being indexing in version 6.8 with the ignore_malformed for the fields in question as you expect and also take a snapshot first. But yes you can do a rolling upgrade between 6.8 and 7.17.10. There's details for rolling upgrades in the below sections of the documentation:

  1. Upgrade Elasticsearch
  2. Rolling upgrades

@carly.richmond have did some digging and find out that when we set ignore_malformed for the date i was able to insert negative values to my new index . But the problem comes when i make a query with that specific field . Elastic search throws exception saying that i wont be able to access this field . Is it because , when we set ignore_malformed field , ES removed this field from its indexing which caused later query failures ? can you please confirm whether my understanding is correct . Attaching the query failure

Hi @Abhilashsr2008,

That understanding does sound correct to me. If you're needing to query these fields I strongly recommend you upgrade to get the fix, where you won't need ignore_malformed.

Hope that helps!

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.