Skip to content

date math overflow incorrectly returns 500 #112483

Closed
@costin

Description

@costin

Elasticsearch Version

8.14.1

Installed Plugins

No response

Java Version

bundled

OS Version

debian

Problem Description

An incorrect date can trigger numeric overflow which gets throws a 500 error per the stacktrace below:

Failed to execute phase [query], all shards failed; shardFailures 
{[00r-OdNYRyuoJiRffHWgNw][inmet_horario][0]: 
  org.elasticsearch.transport.RemoteTransportException: 
  [es-es-search-54bd659bdf-b4xfb][100.65.215.166:9300][indices:data/read/search[phase/query]]
    Caused by: java.lang.ArithmeticException: long overflow
        at java.base/java.lang.Math.multiplyExact(Math.java:1033)
        at java.base/java.lang.Math.multiplyExact(Math.java:1009)
        at java.base/java.time.Instant.toEpochMilli(Instant.java:1262)
        at [email protected]/org.elasticsearch.index.mapper.DateFieldMapper$Resolution$1.convert(DateFieldMapper.java:95)
        at [email protected]/org.elasticsearch.index.mapper.DateFieldMapper$DateFieldType.parseToLong(DateFieldMapper.java:677)
        at [email protected]/org.elasticsearch.index.mapper.DateFieldMapper$DateFieldType.isFieldWithinQuery(DateFieldMapper.java:759)
        at [email protected]/org.elasticsearch.index.mapper.DateFieldMapper$DateFieldType.isFieldWithinQuery(DateFieldMapper.java:723)
        at [email protected]/org.elasticsearch.index.query.RangeQueryBuilder.getRelation(RangeQueryBuilder.java:474)
        at [email protected]/org.elasticsearch.index.query.RangeQueryBuilder.doSearchRewrite(RangeQueryBuilder.java:493)
        at [email protected]/org.elasticsearch.index.query.AbstractQueryBuilder.doRewrite(AbstractQueryBuilder.java:309)
        at [email protected]/org.elasticsearch.index.query.AbstractQueryBuilder.rewrite(AbstractQueryBuilder.java:280)
        at [email protected]/org.elasticsearch.index.query.BoolQueryBuilder.rewriteClauses(BoolQueryBuilder.java:400)
        at [email protected]/org.elasticsearch.index.query.BoolQueryBuilder.doRewrite(BoolQueryBuilder.java:353)
        at [email protected]/org.elasticsearch.index.query.AbstractQueryBuilder.rewrite(AbstractQueryBuilder.java:280)
        at [email protected]/org.elasticsearch.search.builder.SubSearchSourceBuilder.rewrite(SubSearchSourceBuilder.java:89)
        at [email protected]/org.elasticsearch.search.builder.SubSearchSourceBuilder.rewrite(SubSearchSourceBuilder.java:37)
        at [email protected]/org.elasticsearch.index.query.Rewriteable.rewrite(Rewriteable.java:57)
        at [email protected]/org.elasticsearch.index.query.Rewriteable.rewrite(Rewriteable.java:40)
        at [email protected]/org.elasticsearch.index.query.Rewriteable.rewrite(Rewriteable.java:125)
        at [email protected]/org.elasticsearch.search.builder.SearchSourceBuilder.rewrite(SearchSourceBuilder.java:1176)
        at [email protected]/org.elasticsearch.search.builder.SearchSourceBuilder.rewrite(SearchSourceBuilder.java:93)
        at [email protected]/org.elasticsearch.index.query.Rewriteable.rewrite(Rewriteable.java:57)
        at [email protected]/org.elasticsearch.index.query.Rewriteable.rewrite(Rewriteable.java:40)
        at [email protected]/org.elasticsearch.search.internal.ShardSearchRequest$RequestRewritable.rewrite(ShardSearchRequest.java:587)
        at [email protected]/org.elasticsearch.search.internal.ShardSearchRequest$RequestRewritable.rewrite(ShardSearchRequest.java:576)
        at [email protected]/org.elasticsearch.index.query.Rewriteable.rewrite(Rewriteable.java:57)
        at [email protected]/org.elasticsearch.search.SearchService.createSearchContext(SearchService.java:1147)
        at [email protected]/org.elasticsearch.search.SearchService.createContext(SearchService.java:1076)
        at [email protected]/org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:685)
        at [email protected]/org.elasticsearch.search.SearchService.lambda$executeQueryPhase$2(SearchService.java:559)
        at [email protected]/org.elasticsearch.action.ActionRunnable$3.accept(ActionRunnable.java:78)
        at [email protected]/org.elasticsearch.action.ActionRunnable$3.accept(ActionRunnable.java:75)
        at [email protected]/org.elasticsearch.action.ActionRunnable$4.doRun(ActionRunnable.java:100)
        at [email protected]/org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26)
        at [email protected]/org.elasticsearch.common.util.concurrent.TimedRunnable.doRun(TimedRunnable.java:33)
        at [email protected]/org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:991)
        at [email protected]/org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
        at java.base/java.lang.Thread.run(Thread.java:1570)

This is similar to #112190 but has a different root exception.

Steps to Reproduce

See above.

Logs (if relevant)

No response

Metadata

Metadata

Assignees

Labels

:Search Foundations/SearchCatch all for Search Foundations>bugTeam:Search FoundationsMeta label for the Search Foundations team in Elasticsearchpriority:normalA label for assessing bug priority to be used by ES engineers

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions