Skip to content

Arithmetic exception when sort by date field #125321

@denyszrazhevskiy

Description

@denyszrazhevskiy

Elasticsearch Version

8.17.2

Installed Plugins

non

Java Version

bundled

OS Version

docker 8.17.2

Problem Description

When sort by date field, which is not required we have arithmetic exception.
Help only add "missing": Long.MAX_VALUE to sort date field
IMPORTANT: dont work sort only by ASC

Image

Steps to Reproduce

Set settings:

PUT /_cluster/settings 
{
    "persistent" : {
        "search.default_allow_partial_results" : false
    }
}

Create index:

PUT test8
{
  "settings": {
    "number_of_shards": 10
  },
  "mappings": {
    "properties": {
    "reopen_date" : {
      "type" : "date",
      "format": "yyyy-MM-dd HH:mm:ss"
    }
  }}
}

Add docs:

POST _bulk
{"index":{"_index":"test8"}}
{"reopen_date": null}
{"index":{"_index":"test8"}}
{"reopen_date": "2024-07-09 21:11:31"}
{"index":{"_index":"test8"}}
{"reopen_date": null}
{"index":{"_index":"test8"}}
{"reopen_date": null}
{"index":{"_index":"test8"}}
{"reopen_date": null}

Execute:

GET /test8/_search?&from=0&size=1&sort=reopen_date%3Aasc

See error:

{
  "error": {
    "root_cause": [
      {
        "type": "arithmetic_exception",
        "reason": "long overflow"
      }
    ],
    "type": "search_phase_execution_exception",
    "reason": "Partial shards failure",
    "phase": "query",
    "grouped": true,
    "failed_shards": [
      {
        "shard": 3,
        "index": "test8",
        "node": "gnciuUg2SMSP756yJz6TGA",
        "reason": {
          "type": "arithmetic_exception",
          "reason": "long overflow"
        }
      }
    ]
  },
  "status": 500
}

Sometimes need change size in query.
Also its not reproduce when shards < 3-5

Logs (if relevant)

{"type": "server", "timestamp": "2025-03-18T13:48:49,777Z", "level": "WARN", "component": "o.e.a.s.TransportSearchAction", "cluster.name": "prod-ue1-la-es-02", "node.name": "qla-prod-ue1-la-es-02-data-1.prod-ue1.live-agent.net", "message": "TransportSearchAction shard failure (partial results response)", "cluster.uuid": "zha7TU5yTgGZJ8kpiQemqg", "node.id": "tBs2yh-jSjyPb05WS4SURA" ,
"stacktrace": ["org.elasticsearch.action.search.ShardSearchFailure: null",
"at org.elasticsearch.action.search.AbstractSearchAsyncAction.onShardFailure(AbstractSearchAsyncAction.java:534) ~[elasticsearch-8.17.2.jar:?]",
"at org.elasticsearch.action.search.AbstractSearchAsyncAction.onShardFailure(AbstractSearchAsyncAction.java:458) ~[elasticsearch-8.17.2.jar:?]",
"at org.elasticsearch.action.search.AbstractSearchAsyncAction$1.onFailure(AbstractSearchAsyncAction.java:337) ~[elasticsearch-8.17.2.jar:?]",
"at org.elasticsearch.action.ActionListenerImplementations.safeAcceptException(ActionListenerImplementations.java:64) ~[elasticsearch-8.17.2.jar:?]",
"at org.elasticsearch.action.ActionListenerImplementations.safeOnFailure(ActionListenerImplementations.java:75) ~[elasticsearch-8.17.2.jar:?]",
"at org.elasticsearch.action.DelegatingActionListener.onFailure(DelegatingActionListener.java:32) ~[elasticsearch-8.17.2.jar:?]",
"at org.elasticsearch.action.ActionListenerResponseHandler.handleException(ActionListenerResponseHandler.java:54) ~[elasticsearch-8.17.2.jar:?]",
"at org.elasticsearch.action.search.SearchTransportService$ConnectionCountingHandler.handleException(SearchTransportService.java:647) ~[elasticsearch-8.17.2.jar:?]",
"at org.elasticsearch.transport.TransportService$UnregisterChildTransportResponseHandler.handleException(TransportService.java:1786) ~[elasticsearch-8.17.2.jar:?]",
"at org.elasticsearch.transport.TransportService$ContextRestoreResponseHandler.handleException(TransportService.java:1510) ~[elasticsearch-8.17.2.jar:?]",
"at org.elasticsearch.transport.TransportService$DirectResponseChannel.processException(TransportService.java:1644) ~[elasticsearch-8.17.2.jar:?]",
"at org.elasticsearch.transport.TransportService$DirectResponseChannel.sendResponse(TransportService.java:1619) ~[elasticsearch-8.17.2.jar:?]",
"at org.elasticsearch.transport.TaskTransportChannel.sendResponse(TaskTransportChannel.java:44) ~[elasticsearch-8.17.2.jar:?]",
"at org.elasticsearch.action.support.ChannelActionListener.onFailure(ChannelActionListener.java:45) ~[elasticsearch-8.17.2.jar:?]",
"at org.elasticsearch.action.ActionRunnable.onFailure(ActionRunnable.java:152) ~[elasticsearch-8.17.2.jar:?]",
"at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:29) ~[elasticsearch-8.17.2.jar:?]",
"at org.elasticsearch.common.util.concurrent.TimedRunnable.doRun(TimedRunnable.java:34) ~[elasticsearch-8.17.2.jar:?]",
"at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:1023) ~[elasticsearch-8.17.2.jar:?]",
"at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:27) ~[elasticsearch-8.17.2.jar:?]",
"at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]",
"at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]",
"at java.lang.Thread.run(Thread.java:1575) ~[?:?]",
"Caused by: java.lang.ArithmeticException: long overflow",
"at java.lang.Math.addExact(Math.java:932) ~[?:?]",
"at java.time.Instant.toEpochMilli(Instant.java:1287) ~[?:?]",
"at org.elasticsearch.index.mapper.DateFieldMapper$Resolution$1.convert(DateFieldMapper.java:101) ~[elasticsearch-8.17.2.jar:?]",
"at org.elasticsearch.index.mapper.DateFieldMapper$DateFieldType.parseToLong(DateFieldMapper.java:696) ~[elasticsearch-8.17.2.jar:?]",
"at org.elasticsearch.index.mapper.DateFieldMapper$DateFieldType.isFieldWithinQuery(DateFieldMapper.java:778) ~[elasticsearch-8.17.2.jar:?]",
"at org.elasticsearch.index.mapper.DateFieldMapper$DateFieldType.isFieldWithinQuery(DateFieldMapper.java:742) ~[elasticsearch-8.17.2.jar:?]",
"at org.elasticsearch.search.sort.FieldSortBuilder.isBottomSortShardDisjoint(FieldSortBuilder.java:426) ~[elasticsearch-8.17.2.jar:?]",
"at org.elasticsearch.search.internal.ShardSearchRequest$RequestRewritable.rewrite(ShardSearchRequest.java:593) ~[elasticsearch-8.17.2.jar:?]",
"at org.elasticsearch.search.internal.ShardSearchRequest$RequestRewritable.rewrite(ShardSearchRequest.java:577) ~[elasticsearch-8.17.2.jar:?]",
"at org.elasticsearch.index.query.Rewriteable.rewrite(Rewriteable.java:57) ~[elasticsearch-8.17.2.jar:?]",
"at org.elasticsearch.search.SearchService.createSearchContext(SearchService.java:1173) ~[elasticsearch-8.17.2.jar:?]",
"at org.elasticsearch.search.SearchService.createContext(SearchService.java:1103) ~[elasticsearch-8.17.2.jar:?]",
"at org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:706) ~[elasticsearch-8.17.2.jar:?]",
"at org.elasticsearch.search.SearchService.lambda$executeQueryPhase$2(SearchService.java:576) ~[elasticsearch-8.17.2.jar:?]",
"at org.elasticsearch.action.ActionRunnable$3.accept(ActionRunnable.java:79) ~[elasticsearch-8.17.2.jar:?]",
"at org.elasticsearch.action.ActionRunnable$3.accept(ActionRunnable.java:76) ~[elasticsearch-8.17.2.jar:?]",
"at org.elasticsearch.action.ActionRunnable$4.doRun(ActionRunnable.java:101) ~[elasticsearch-8.17.2.jar:?]",
"at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:27) ~[elasticsearch-8.17.2.jar:?]",
"... 6 more"] }

Metadata

Metadata

Assignees

Labels

:Search Foundations/SearchCatch all for Search Foundations>bugTeam:Search FoundationsMeta label for the Search Foundations team in Elasticsearchpriority:highA 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