[ https://issues.apache.org/jira/browse/SOLR-17280?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17844415#comment-17844415 ]
Mike Drob commented on SOLR-17280: ---------------------------------- As far as the cache insertion, that dates all the way back to the [introduction of SolrRangeQuery|https://github.com/apache/solr/commit/996a3fb117f8ee275ac16cbc789eb65eeb1898ed], so you might have to ask [~yonik] about what is actually going on. IIRC, when I committed this I did a bunch of manual cache inspection so I think it gives the right results, but it's also very possible that the tests are missing an edge case to verify correctness. The comment about the "naked put" relates to the cache check earlier, since we know we got a null (lines 440 + 447), so we don't need a putIfAbsent/computeIfAbsent, and can go straight to put. > SolrRangeQuery can trigger "IllegalStateException: Recursive update" in > CaffeineCache / ConcurrentHashMap > --------------------------------------------------------------------------------------------------------- > > Key: SOLR-17280 > URL: https://issues.apache.org/jira/browse/SOLR-17280 > Project: Solr > Issue Type: Bug > Security Level: Public(Default Security Level. Issues are Public) > Reporter: Chris M. Hostetter > Priority: Major > > Sample stacktrace... > {noformat} > 2> => java.lang.IllegalStateException: Recursive update > 2> at > java.base/java.util.concurrent.ConcurrentHashMap.putVal(ConcurrentHashMap.java:1063) > 2> java.lang.IllegalStateException: Recursive update > 2> at > java.base/java.util.concurrent.ConcurrentHashMap.putVal(ConcurrentHashMap.java:1063) > ~[?:?] > 2> at > java.base/java.util.concurrent.ConcurrentHashMap.putIfAbsent(ConcurrentHashMap.java:1541) > ~[?:?] > 2> at > com.github.benmanes.caffeine.cache.BoundedLocalCache.put(BoundedLocalCache.java:2312) > ~[caffeine-3.1.8.jar:3.1.8] > 2> at > com.github.benmanes.caffeine.cache.BoundedLocalCache.put(BoundedLocalCache.java:2278) > ~[caffeine-3.1.8.jar:3.1.8] > 2> at org.apache.solr.search.CaffeineCache.put(CaffeineCache.java:277) > ~[main/:?] > 2> at > org.apache.solr.query.SolrRangeQuery$ConstWeight.getSegState(SolrRangeQuery.java:482) > ~[main/:?] > 2> at > org.apache.solr.query.SolrRangeQuery$ConstWeight.scorer(SolrRangeQuery.java:552) > ~[main/:?] > 2> at org.apache.lucene.search.Weight.scorerSupplier(Weight.java:135) > ~[lucene-core-9.10.0.jar:9.10.0 695c0ac84508438302cd346a812cfa2fdc5a10df - > 2024-02-14 16:48:06] > 2> at > org.apache.lucene.search.BooleanWeight.requiredBulkScorer(BooleanWeight.java:289) > ~[lucene-core-9.10.0.jar:9.10.0 695c0ac84508438302cd346a812cfa2fdc5a10df - > 2024-02-14 16:48:06] > 2> at > org.apache.lucene.search.BooleanWeight.booleanScorer(BooleanWeight.java:402) > ~[lucene-core-9.10.0.jar:9.10.0 695c0ac84508438302cd346a812cfa2fdc5a10df - > 2024-02-14 16:48:06] > 2> at > org.apache.lucene.search.BooleanWeight.bulkScorer(BooleanWeight.java:443) > ~[lucene-core-9.10.0.jar:9.10.0 695c0ac84508438302cd346a812cfa2fdc5a10df - > 2024-02-14 16:48:06] > 2> at > org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:737) > ~[lucene-core-9.10.0.jar:9.10.0 695c0ac84508438302cd346a812cfa2fdc5a10df - > 2024-02-14 16:48:06] > 2> at > org.apache.solr.search.SolrIndexSearcher.search(SolrIndexSearcher.java:720) > ~[main/:?] > 2> at > org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:552) > ~[lucene-core-9.10.0.jar:9.10.0 695c0ac84508438302cd346a812cfa2fdc5a10df - > 2024-02-14 16:48:06] > 2> at > org.apache.solr.search.DocSetUtil.createDocSetGeneric(DocSetUtil.java:154) > ~[main/:?] > 2> at > org.apache.solr.search.DocSetUtil.createDocSet(DocSetUtil.java:141) ~[main/:?] > 2> at > org.apache.solr.search.SolrIndexSearcher.getDocSetNC(SolrIndexSearcher.java:1387) > ~[main/:?] > 2> at > org.apache.solr.search.SolrIndexSearcher.lambda$getAndCacheDocSet$1(SolrIndexSearcher.java:991) > ~[main/:?] > 2> at > org.apache.solr.search.CaffeineCache.lambda$computeIfAbsent$1(CaffeineCache.java:258) > ~[main/:?] > 2> at > com.github.benmanes.caffeine.cache.LocalCache.lambda$statsAware$2(LocalCache.java:167) > ~[caffeine-3.1.8.jar:3.1.8] > 2> at > com.github.benmanes.caffeine.cache.BoundedLocalCache.lambda$doComputeIfAbsent$14(BoundedLocalCache.java:2688) > ~[caffeine-3.1.8.jar:3.1.8] > 2> at > java.base/java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1908) > ~[?:?] > 2> at > com.github.benmanes.caffeine.cache.BoundedLocalCache.doComputeIfAbsent(BoundedLocalCache.java:2686) > ~[caffeine-3.1.8.jar:3.1.8] > 2> at > com.github.benmanes.caffeine.cache.BoundedLocalCache.computeIfAbsent(BoundedLocalCache.java:2669) > ~[caffeine-3.1.8.jar:3.1.8] > 2> at > com.github.benmanes.caffeine.cache.LocalCache.computeIfAbsent(LocalCache.java:112) > ~[caffeine-3.1.8.jar:3.1.8] > 2> at > com.github.benmanes.caffeine.cache.LocalManualCache.get(LocalManualCache.java:62) > ~[caffeine-3.1.8.jar:3.1.8] > 2> at > org.apache.solr.search.CaffeineCache.computeIfAbsent(CaffeineCache.java:253) > ~[main/:?] > 2> at > org.apache.solr.search.SolrIndexSearcher.getAndCacheDocSet(SolrIndexSearcher.java:991) > ~[main/:?] > 2> at > org.apache.solr.search.SolrIndexSearcher.getPositiveDocSet(SolrIndexSearcher.java:946) > ~[main/:?] > 2> at > org.apache.solr.search.SolrIndexSearcher.numDocs(SolrIndexSearcher.java:2367) > ~[main/:?] > 2> at > org.apache.solr.request.SimpleFacets.getFacetQueryCount(SimpleFacets.java:320) > ~[main/:?] > 2> at > org.apache.solr.request.SimpleFacets.getFacetQueryCounts(SimpleFacets.java:302) > ~[main/:?] > 2> at > org.apache.solr.handler.component.FacetComponent.getFacetCounts(FacetComponent.java:331) > ~[main/:?] > 2> at > org.apache.solr.handler.component.FacetComponent.process(FacetComponent.java:279) > ~[main/:?] > 2> at > org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:466) > ~[main/:?] > 2> at > org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:238) > ~[main/:?] > 2> at org.apache.solr.core.SolrCore.execute(SolrCore.java:2886) > ~[main/:?] > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org