[ 
https://issues.apache.org/jira/browse/SOLR-15555?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17390794#comment-17390794
 ] 

Mike Drob commented on SOLR-15555:
----------------------------------

Another interesting failure from the work in progress...

{noformat}
  2> WARNING: Exception thrown during asynchronous load
  2> java.util.concurrent.CompletionException: java.lang.AssertionError: Terms 
enums are only supposed to be consumed in the thread in which they have been 
acquired. But was acquired in 
Thread[TEST-TestJoin.testRandomJoin-seed#[87CF0AC6A1EA044],5,TGRP-TestJoin] and 
consumed in Thread[AsyncCachePool-19-thread-2,5,TGRP-TestJoin].
  2>    at 
java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:314)
  2>    at 
java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:319)
  2>    at 
java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1702)
  2>    at 
org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.lambda$execute$0(ExecutorUtil.java:235)
  2>    at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
  2>    at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
  2>    at java.base/java.lang.Thread.run(Thread.java:829)
  2> Caused by: java.lang.AssertionError: Terms enums are only supposed to be 
consumed in the thread in which they have been acquired. But was acquired in 
Thread[TEST-TestJoin.testRandomJoin-seed#[87CF0AC6A1EA044],5,TGRP-TestJoin] and 
consumed in Thread[AsyncCachePool-19-thread-2,5,TGRP-TestJoin].
  2>    at 
__randomizedtesting.SeedInfo.seed([87CF0AC6A1EA044:71F63C1878390EA4]:0)
  2>    at 
org.apache.lucene.index.AssertingLeafReader.assertThread(AssertingLeafReader.java:43)
  2>    at 
org.apache.lucene.index.AssertingLeafReader$AssertingTermsEnum.postings(AssertingLeafReader.java:204)
  2>    at 
org.apache.lucene.index.MultiTermsEnum.postings(MultiTermsEnum.java:365)
  2>    at 
org.apache.solr.search.SolrIndexSearcher.getResult(SolrIndexSearcher.java:1119)
  2>    at 
org.apache.solr.search.SolrIndexSearcher.lambda$getDocSet$2(SolrIndexSearcher.java:1103)
  2>    at 
org.apache.solr.search.CaffeineCache.lambda$computeIfAbsent$1(CaffeineCache.java:244)
  2>    at 
com.github.benmanes.caffeine.cache.LocalAsyncCache.lambda$get$0(LocalAsyncCache.java:77)
  2>    at 
java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
  2>    ... 4 more
{noformat}

> Use filterCache.computeIfAbsent in SolrIndexSearcher
> ----------------------------------------------------
>
>                 Key: SOLR-15555
>                 URL: https://issues.apache.org/jira/browse/SOLR-15555
>             Project: Solr
>          Issue Type: Improvement
>      Security Level: Public(Default Security Level. Issues are Public) 
>            Reporter: Mike Drob
>            Priority: Major
>          Time Spent: 2h
>  Remaining Estimate: 0h
>
> When multiple concurrent queries come in at the same time, in several cases 
> they can trigger concurrent computations of a DocSet for the cache. We should 
> investigate where this happens and possibly take care to only do a single 
> computation when possible.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to