-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Open
Labels
Description
Describe the bug
We've upgraded to OpenSearch 2.19 and started seeing index_out_of_bounds_exception when using regex include with TermsAggregation.
Related component
Search:Aggregations
To Reproduce
- Run OpenSearch
2.19.3in docker - Create sample index
curl --location --request PUT 'http://localhost:9200/test-index-1' \
--header 'Content-Type: application/json' \
--data '{
"mappings": {
"properties": {
"keywordField": {
"type": "keyword"
}
}
}
}'
- Add a document to the index
curl --location 'http://localhost:9200/test-index-1/_doc' \
--header 'Content-Type: application/json' \
--data '{
"keywordField" : "abc"
}'
- Search using regex include with TermsAggregation
curl --location --request GET 'http://localhost:9200/test-index-1/_search' \
--header 'Content-Type: application/json' \
--data '{
"aggregations": {
"exact": {
"aggregations": {},
"terms": {
"field": "keywordField",
"include": "va.*"
}
}
}
}'
- See error
{
"error": {
"root_cause": [
{
"type": "index_out_of_bounds_exception",
"reason": null
}
],
"type": "search_phase_execution_exception",
"reason": "all shards failed",
"phase": "query",
"grouped": true,
"failed_shards": [
{
"shard": 0,
"index": "test-index-1",
"node": "CWTLmuqpRAK_00gCOjx8QA",
"reason": {
"type": "index_out_of_bounds_exception",
"reason": null
}
}
],
"caused_by": {
"type": "index_out_of_bounds_exception",
"reason": null,
"caused_by": {
"type": "index_out_of_bounds_exception",
"reason": null
}
}
},
"status": 500
}
[2025-10-06T04:24:53,927][WARN ][r.suppressed ] [0fa5ae16c921] path: /test-index-1/_search, params: {index=test-index-1}
2025-10-06 15:24:53 org.opensearch.action.search.SearchPhaseExecutionException: all shards failed
2025-10-06 15:24:53 at org.opensearch.action.search.AbstractSearchAsyncAction.onPhaseFailure(AbstractSearchAsyncAction.java:775) [opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.action.search.AbstractSearchAsyncAction.executeNextPhase(AbstractSearchAsyncAction.java:395) [opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.action.search.AbstractSearchAsyncAction.onPhaseDone(AbstractSearchAsyncAction.java:815) [opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.action.search.AbstractSearchAsyncAction.onShardFailure(AbstractSearchAsyncAction.java:548) [opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.action.search.AbstractSearchAsyncAction$1.onFailure(AbstractSearchAsyncAction.java:316) [opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.action.search.SearchExecutionStatsCollector.onFailure(SearchExecutionStatsCollector.java:104) [opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.action.ActionListenerResponseHandler.handleException(ActionListenerResponseHandler.java:75) [opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.action.search.SearchTransportService$ConnectionCountingHandler.handleException(SearchTransportService.java:766) [opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.transport.TransportService$9.handleException(TransportService.java:1741) [opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.transport.TransportService$ContextRestoreResponseHandler.handleException(TransportService.java:1527) [opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.transport.TransportService$DirectResponseChannel.processException(TransportService.java:1641) [opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.transport.TransportService$DirectResponseChannel.sendResponse(TransportService.java:1615) [opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.transport.TaskTransportChannel.sendResponse(TaskTransportChannel.java:81) [opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.transport.TransportChannel.sendErrorResponse(TransportChannel.java:75) [opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.action.support.ChannelActionListener.onFailure(ChannelActionListener.java:70) [opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.action.ActionRunnable.onFailure(ActionRunnable.java:104) [opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:54) [opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.threadpool.TaskAwareRunnable.doRun(TaskAwareRunnable.java:78) [opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:52) [opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.common.util.concurrent.TimedRunnable.doRun(TimedRunnable.java:59) [opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:1014) [opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:52) [opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) [?:?]
2025-10-06 15:24:53 at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) [?:?]
2025-10-06 15:24:53 at java.base/java.lang.Thread.run(Thread.java:1583) [?:?]
2025-10-06 15:24:53 Caused by: org.opensearch.OpenSearchException$3
2025-10-06 15:24:53 at org.opensearch.OpenSearchException.guessRootCauses(OpenSearchException.java:710) ~[opensearch-core-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.action.search.AbstractSearchAsyncAction.executeNextPhase(AbstractSearchAsyncAction.java:393) [opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 ... 23 more
2025-10-06 15:24:53 Caused by: java.lang.IndexOutOfBoundsException
2025-10-06 15:24:53 at org.apache.lucene.codecs.lucene90.Lucene90DocValuesProducer$TermsDict.seekExact(Lucene90DocValuesProducer.java:1114) ~[lucene-core-9.12.2.jar:9.12.2 5a26234c834e4a33fd612ef8d13111ac0f0a1263 - 2025-06-17 11:16:41]
2025-10-06 15:24:53 at org.apache.lucene.codecs.lucene90.Lucene90DocValuesProducer$BaseSortedDocValues.lookupOrd(Lucene90DocValuesProducer.java:982) ~[lucene-core-9.12.2.jar:9.12.2 5a26234c834e4a33fd612ef8d13111ac0f0a1263 - 2025-06-17 11:16:41]
2025-10-06 15:24:53 at org.apache.lucene.index.SingletonSortedSetDocValues.lookupOrd(SingletonSortedSetDocValues.java:95) ~[lucene-core-9.12.2.jar:9.12.2 5a26234c834e4a33fd612ef8d13111ac0f0a1263 - 2025-06-17 11:16:41]
2025-10-06 15:24:53 at org.opensearch.search.aggregations.bucket.terms.IncludeExclude$PrefixBackedOrdinalsFilter.process(IncludeExclude.java:444) ~[opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.search.aggregations.bucket.terms.IncludeExclude$PrefixBackedOrdinalsFilter.acceptedGlobalOrdinals(IncludeExclude.java:480) ~[opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.search.aggregations.bucket.terms.GlobalOrdinalsStringTermsAggregator.<init>(GlobalOrdinalsStringTermsAggregator.java:136) ~[opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.search.aggregations.bucket.terms.TermsAggregatorFactory$ExecutionMode$2.create(TermsAggregatorFactory.java:502) ~[opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.search.aggregations.bucket.terms.TermsAggregatorFactory$1.build(TermsAggregatorFactory.java:140) ~[opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.search.aggregations.bucket.terms.TermsAggregatorFactory.doCreateInternal(TermsAggregatorFactory.java:310) ~[opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.search.aggregations.support.ValuesSourceAggregatorFactory.createInternal(ValuesSourceAggregatorFactory.java:76) ~[opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.search.aggregations.AggregatorFactory.create(AggregatorFactory.java:103) ~[opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.search.aggregations.AggregatorFactories.createTopLevelAggregators(AggregatorFactories.java:315) ~[opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.search.aggregations.AggregatorFactories.createTopLevelNonGlobalAggregators(AggregatorFactories.java:301) ~[opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.search.aggregations.AggregationCollectorManager.newCollector(AggregationCollectorManager.java:45) ~[opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.search.aggregations.NonGlobalAggCollectorManagerWithSingleCollector.<init>(NonGlobalAggCollectorManagerWithSingleCollector.java:33) ~[opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.search.aggregations.DefaultAggregationProcessor.preProcess(DefaultAggregationProcessor.java:37) ~[opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.neuralsearch.search.query.HybridAggregationProcessor.preProcess(HybridAggregationProcessor.java:32) ~[?:?]
2025-10-06 15:24:53 at org.opensearch.search.query.QueryPhase.execute(QueryPhase.java:154) ~[opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.search.SearchService.loadOrExecuteQueryPhase(SearchService.java:648) ~[opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.search.SearchService.executeQueryPhase(SearchService.java:712) ~[opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.search.SearchService$2.lambda$onResponse$0(SearchService.java:681) ~[opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.action.ActionRunnable.lambda$supply$0(ActionRunnable.java:74) ~[opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.action.ActionRunnable$2.doRun(ActionRunnable.java:89) ~[opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 at org.opensearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:52) ~[opensearch-2.19.3.jar:2.19.3]
2025-10-06 15:24:53 ... 8 more
Expected behavior
The search request should complete successfully without any bucket found.
Additional Details
Interestingly, if I change the regex to Va.* or a.*, the search works as expected.
This is not an issue in OpenSearch 2.11
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
🆕 New