-
Notifications
You must be signed in to change notification settings - Fork 25.6k
Closed
Copy link
Labels
:Search Relevance/HighlightingHow a query matched a documentHow a query matched a document>bugTeam:Search RelevanceMeta label for the Search Relevance team in ElasticsearchMeta label for the Search Relevance team in Elasticsearch
Description
Elasticsearch Version
v8.10+
Installed Plugins
No response
Java Version
bundled
OS Version
any
Problem Description
When running a kql query that searches over nested docs, universal highlighter gave a weird error:
Caused by: java.lang.IllegalArgumentException: Reader FilterLeafReader(FilterLeafReader(FilterLeafReader(FieldUsageTrackingLeafReader(reader=FilterLeafReader(_1vv(9.7.0):c1303:[diagnostics={java.vendor=Oracle Corporation, os.arch=amd64, os.version=5.10.176+, lucene.version=9.7.0, source=flush, timestamp=1698736883411, java.runtime.version=21+35-2513, os=Linux}]:[attributes={Lucene90StoredFieldsFormat.mode=BEST_SPEED}] :id=5w3udydef33hjzq9jddg14koi))))) does not support caching
Steps to Reproduce
This seems to be caused when we attempt to read from some query cache when utilizing the filter reader provided by the weight_matches_mode option in the highlighter.
That reader is specifically constructed like this:
LeafReader leafReader =
new FilterLeafReader(_leafReader) {
@Override
public Terms terms(String field) throws IOException {
if (components.getFieldMatcher().test(field)) {
return super.terms(components.getField());
} else {
return super.terms(field);
}
}
// So many subclasses do this!
// these ought to be a default or added via some intermediary like
// "FilterTransientLeafReader" (exception on close).
@Override
public CacheHelper getCoreCacheHelper() {
return null;
}
@Override
public CacheHelper getReaderCacheHelper() {
return null;
}
};
Logs (if relevant)
"reason": "Reader FilterLeafReader(FilterLeafReader(FilterLeafReader(FieldUsageTrackingLeafReader(reader=FilterLeafReader(_1vv(9.7.0):c1303:[diagnostics={java.vendor=Oracle Corporation, os.arch=amd64, os.version=5.10.176+, lucene.version=9.7.0, source=flush, timestamp=1698736883411, java.runtime.version=21+35-2513, os=Linux}]:[attributes={Lucene90StoredFieldsFormat.mode=BEST_SPEED}] :id=5w3udydef33hjzq9jddg14koi))))) does not support caching",
"stack_trace": """org.elasticsearch.ElasticsearchException$1: Reader FilterLeafReader(FilterLeafReader(FilterLeafReader(FieldUsageTrackingLeafReader(reader=FilterLeafReader(_1vv(9.7.0):c1303:[diagnostics={java.vendor=Oracle Corporation, os.arch=amd64, os.version=5.10.176+, lucene.version=9.7.0, source=flush, timestamp=1698736883411, java.runtime.version=21+35-2513, os=Linux}]:[attributes={Lucene90StoredFieldsFormat.mode=BEST_SPEED}] :id=5w3udydef33hjzq9jddg14koi))))) does not support caching
at [email protected]/org.elasticsearch.ElasticsearchException.guessRootCauses(ElasticsearchException.java:667)
at [email protected]/org.elasticsearch.action.search.SearchPhaseExecutionException.guessRootCauses(SearchPhaseExecutionException.java:150)
at [email protected]/org.elasticsearch.ElasticsearchException.guessRootCauses(ElasticsearchException.java:649)
at [email protected]/org.elasticsearch.ElasticsearchException.generateFailureXContent(ElasticsearchException.java:595)
at [email protected]/org.elasticsearch.rest.RestResponse.build(RestResponse.java:176)
at [email protected]/org.elasticsearch.rest.RestResponse.<init>(RestResponse.java:124)
at [email protected]/org.elasticsearch.rest.RestResponse.<init>(RestResponse.java:103)
at [email protected]/org.elasticsearch.rest.action.RestActionListener.onFailure(RestActionListener.java:55)
at [email protected]/org.elasticsearch.rest.action.RestCancellableNodeClient$1.onFailure(RestCancellableNodeClient.java:96)
at [email protected]/org.elasticsearch.client.internal.node.NodeClient$SafelyWrappedActionListener.onFailure(NodeClient.java:171)
at [email protected]/org.elasticsearch.tasks.TaskManager$1.onFailure(TaskManager.java:217)
at [email protected]/org.elasticsearch.action.ActionListenerImplementations.safeAcceptException(ActionListenerImplementations.java:62)
at [email protected]/org.elasticsearch.action.ActionListenerImplementations.safeOnFailure(ActionListenerImplementations.java:73)
at [email protected]/org.elasticsearch.action.DelegatingActionListener.onFailure(DelegatingActionListener.java:27)
at [email protected]/org.elasticsearch.action.support.ContextPreservingActionListener.onFailure(ContextPreservingActionListener.java:39)
at [email protected]/org.elasticsearch.action.ActionListenerImplementations.safeAcceptException(ActionListenerImplementations.java:62)
at [email protected]/org.elasticsearch.action.ActionListenerImplementations.safeOnFailure(ActionListenerImplementations.java:73)
at [email protected]/org.elasticsearch.action.DelegatingActionListener.onFailure(DelegatingActionListener.java:27)
at [email protected]/org.elasticsearch.action.ActionListenerImplementations.safeAcceptException(ActionListenerImplementations.java:62)
at [email protected]/org.elasticsearch.action.ActionListenerImplementations.safeOnFailure(ActionListenerImplementations.java:73)
at [email protected]/org.elasticsearch.action.DelegatingActionListener.onFailure(DelegatingActionListener.java:27)
at [email protected]/org.elasticsearch.action.ActionListenerImplementations$RunAfterActionListener.onFailure(ActionListenerImplementations.java:269)
at [email protected]/org.elasticsearch.action.search.AbstractSearchAsyncAction.raisePhaseFailure(AbstractSearchAsyncAction.java:752)
at [email protected]/org.elasticsearch.action.search.AbstractSearchAsyncAction.onPhaseFailure(AbstractSearchAsyncAction.java:729)
at [email protected]/org.elasticsearch.action.search.AbstractSearchAsyncAction.executeNextPhase(AbstractSearchAsyncAction.java:419)
at [email protected]/org.elasticsearch.action.search.AbstractSearchAsyncAction.onPhaseDone(AbstractSearchAsyncAction.java:761)
at [email protected]/org.elasticsearch.action.search.AbstractSearchAsyncAction.onShardFailure(AbstractSearchAsyncAction.java:513)
at [email protected]/org.elasticsearch.action.search.AbstractSearchAsyncAction$1.onFailure(AbstractSearchAsyncAction.java:350)
at [email protected]/org.elasticsearch.action.ActionListenerImplementations.safeAcceptException(ActionListenerImplementations.java:62)
at [email protected]/org.elasticsearch.action.ActionListenerImplementations.safeOnFailure(ActionListenerImplementations.java:73)
at [email protected]/org.elasticsearch.action.DelegatingActionListener.onFailure(DelegatingActionListener.java:27)
at [email protected]/org.elasticsearch.action.ActionListenerResponseHandler.handleException(ActionListenerResponseHandler.java:54)
at [email protected]/org.elasticsearch.action.search.SearchTransportService$ConnectionCountingHandler.handleException(SearchTransportService.java:630)
at [email protected]/org.elasticsearch.transport.TransportService$UnregisterChildTransportResponseHandler.handleException(TransportService.java:1707)
at [email protected]/org.elasticsearch.transport.TransportService$ContextRestoreResponseHandler.handleException(TransportService.java:1424)
at [email protected]/org.elasticsearch.transport.TransportService$DirectResponseChannel.processException(TransportService.java:1560)
at [email protected]/org.elasticsearch.transport.TransportService$DirectResponseChannel.sendResponse(TransportService.java:1535)
at [email protected]/org.elasticsearch.transport.TaskTransportChannel.sendResponse(TaskTransportChannel.java:51)
at [email protected]/org.elasticsearch.action.support.ChannelActionListener.onFailure(ChannelActionListener.java:37)
at [email protected]/org.elasticsearch.action.ActionRunnable.onFailure(ActionRunnable.java:124)
at [email protected]/org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:28)
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:983)
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:1583)
Caused by: java.lang.IllegalArgumentException: Reader FilterLeafReader(FilterLeafReader(FilterLeafReader(FieldUsageTrackingLeafReader(reader=FilterLeafReader(_1vv(9.7.0):c1303:[diagnostics={java.vendor=Oracle Corporation, os.arch=amd64, os.version=5.10.176+, lucene.version=9.7.0, source=flush, timestamp=1698736883411, java.runtime.version=21+35-2513, os=Linux}]:[attributes={Lucene90StoredFieldsFormat.mode=BEST_SPEED}] :id=5w3udydef33hjzq9jddg14koi))))) does not support caching
at [email protected]/org.elasticsearch.index.cache.bitset.BitsetFilterCache.getAndLoadIfNotPresent(BitsetFilterCache.java:144)
at [email protected]/org.elasticsearch.index.cache.bitset.BitsetFilterCache$QueryWrapperBitSetProducer.getBitSet(BitsetFilterCache.java:224)
at [email protected]/org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinWeight.scorerSupplier(ToParentBlockJoinQuery.java:150)
at [email protected]/org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinWeight.scorer(ToParentBlockJoinQuery.java:132)
at [email protected]/org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinWeight.matches(ToParentBlockJoinQuery.java:184)
at [email protected]/org.apache.lucene.search.BooleanWeight.matches(BooleanWeight.java:134)
at [email protected]/org.apache.lucene.search.BooleanWeight.matches(BooleanWeight.java:134)
at [email protected]/org.apache.lucene.search.BooleanWeight.matches(BooleanWeight.java:134)
at [email protected]/org.apache.lucene.search.BooleanWeight.matches(BooleanWeight.java:134)
at [email protected]/org.apache.lucene.search.uhighlight.FieldOffsetStrategy.createOffsetsEnumsWeightMatcher(FieldOffsetStrategy.java:147)
at [email protected]/org.apache.lucene.search.uhighlight.FieldOffsetStrategy.createOffsetsEnumFromReader(FieldOffsetStrategy.java:74)
at [email protected]/org.apache.lucene.search.uhighlight.MemoryIndexOffsetStrategy.getOffsetsEnum(MemoryIndexOffsetStrategy.java:119)
at [email protected]/org.apache.lucene.search.uhighlight.FieldHighlighter.highlightFieldForDoc(FieldHighlighter.java:80)
at [email protected]/org.elasticsearch.lucene.search.uhighlight.CustomFieldHighlighter.highlightFieldForDoc(CustomFieldHighlighter.java:63)
at [email protected]/org.elasticsearch.lucene.search.uhighlight.CustomUnifiedHighlighter.highlightField(CustomUnifiedHighlighter.java:147)
at [email protected]/org.elasticsearch.search.fetch.subphase.highlight.DefaultHighlighter.highlight(DefaultHighlighter.java:81)
at [email protected]/org.elasticsearch.search.fetch.subphase.highlight.HighlightPhase$1.process(HighlightPhase.java:69)
at [email protected]/org.elasticsearch.search.fetch.FetchPhase$1.nextDoc(FetchPhase.java:158)
at [email protected]/org.elasticsearch.search.fetch.FetchPhaseDocsIterator.iterate(FetchPhaseDocsIterator.java:70)
at [email protected]/org.elasticsearch.search.fetch.FetchPhase.buildSearchHits(FetchPhase.java:164)
at [email protected]/org.elasticsearch.search.fetch.FetchPhase.execute(FetchPhase.java:77)
at [email protected]/org.elasticsearch.search.SearchService.executeFetchPhase(SearchService.java:708)
at [email protected]/org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:679)
at [email protected]/org.elasticsearch.search.SearchService.lambda$executeQueryPhase$2(SearchService.java:541)
at [email protected]/org.elasticsearch.action.ActionRunnable$2.accept(ActionRunnable.java:51)
at [email protected]/org.elasticsearch.action.ActionRunnable$2.accept(ActionRunnable.java:48)
at [email protected]/org.elasticsearch.action.ActionRunnable$3.doRun(ActionRunnable.java:73)
at [email protected]/org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26)
Metadata
Metadata
Assignees
Labels
:Search Relevance/HighlightingHow a query matched a documentHow a query matched a document>bugTeam:Search RelevanceMeta label for the Search Relevance team in ElasticsearchMeta label for the Search Relevance team in Elasticsearch