Jessica Cheng Mallet created SOLR-9116:
------------------------------------------
Summary: Race condition causing occasional SolrIndexSearcher leak
when SolrCore is reloaded
Key: SOLR-9116
URL: https://issues.apache.org/jira/browse/SOLR-9116
Project: Solr
Issue Type: Bug
Reporter: Jessica Cheng Mallet
Fix a leak of SolrIndexSearcher when a SolrCore is reloaded. Added a test to
expose this leak when run in many iterations (pretty reliable failure with
iters=1K), which passes with the fix (ran iters=10K twice).
The fundamental issue is that when an invocation of SolrCore#openNewSearcher is
racing with SolrCore#close, if this synchronized block
(https://github.com/apache/lucene-solr/blob/master/solr/
core/src/java/org/apache/solr/core/SolrCore.java#L1611) in openNewSearcher
doesn't check for whether or not the core is closed, it can possibly run after
the core runs closeSearcher and assign the newly constructed searcher to
realtimeSearcher again, which will never be cleaned up. The fix is to check if
the SolrCore is closed inside the synchronized block, and if so, clean up the
newly constructed searcher and throw an Exception.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]