We use Lucene 5.3.0 in Gerrit 2.12 [1]. Recently we are seeing the Lucene index writer thread throwing StackOverflowError like [2]. I included the line numbers from the log file just that you can see that it is about 19K lines in the stack trace.
The WrappableSearcherManager manager class [3] was copied from [4]. Do you have an idea what could cause the (almost) infinite recursion? What can we do about this issue? [1] https://www.gerritcodereview.com/ [2] 65890 [2016-04-27 13:30:20,599] [NRT open] ERROR com.google.gerrit.pgm.Daemon : Thread NRT open threw exception 65891 java.lang.StackOverflowError 65892 at java.util.WeakHashMap.size(WeakHashMap.java:434) 65893 at java.util.WeakHashMap.isEmpty(WeakHashMap.java:445) 65894 at java.util.WeakHashMap$HashIterator.<init>(WeakHashMap.java:861) 65895 at java.util.WeakHashMap$KeyIterator.<init>(WeakHashMap.java:919) 65896 at java.util.WeakHashMap$KeyIterator.<init>(WeakHashMap.java:919) 65897 at java.util.WeakHashMap$KeySet.iterator(WeakHashMap.java:955) 65898 at java.util.Collections$SetFromMap.iterator(Collections.java:3904) 65899 at java.util.Collections$SynchronizedCollection.iterator(Collections.java:1632) 65900 at org.apache.lucene.index.IndexReader.reportCloseToParentReaders(IndexReader.java:160) 65901 at org.apache.lucene.index.IndexReader.reportCloseToParentReaders(IndexReader.java:165) 65902 at org.apache.lucene.index.IndexReader.reportCloseToParentReaders(IndexReader.java:165) 65903 at org.apache.lucene.index.IndexReader.reportCloseToParentReaders(IndexReader.java:165) 65904 at org.apache.lucene.index.IndexReader.reportCloseToParentReaders(IndexReader.java:165) 65905 at org.apache.lucene.index.IndexReader.reportCloseToParentReaders(IndexReader.java:165) 65906 at org.apache.lucene.index.IndexReader.reportCloseToParentReaders(IndexReader.java:165) 65907 at org.apache.lucene.index.IndexReader.reportCloseToParentReaders(IndexReader.java:165) 65908 at org.apache.lucene.index.IndexReader.reportCloseToParentReaders(IndexReader.java:165) 65909 at org.apache.lucene.index.IndexReader.reportCloseToParentReaders(IndexReader.java:165) 65910 at org.apache.lucene.index.IndexReader.reportCloseToParentReaders(IndexReader.java:165) . 70742 at org.apache.lucene.index.IndexReader.reportCloseToParentReaders(IndexReader.java:165) 70743 at org.apache.lucene.index.IndexReader.decRef(IndexReader.java:258) 70744 at org.apache.lucene.index.StandardDirectoryReader.doClose(StandardDirectoryReader.java:359) 70745 at org.apache.lucene.index.IndexReader.decRef(IndexReader.java:253) 70746 at org.apache.lucene.index.IndexReader.close(IndexReader.java:403) 70747 at org.apache.lucene.index.FilterDirectoryReader.doClose(FilterDirectoryReader.java:134) 70748 at org.apache.lucene.index.IndexReader.decRef(IndexReader.java:253) 70749 at org.apache.lucene.index.IndexReader.close(IndexReader.java:403) 70750 at org.apache.lucene.index.FilterDirectoryReader.doClose(FilterDirectoryReader.java:134) 70751 at org.apache.lucene.index.IndexReader.decRef(IndexReader.java:253) 70752 at org.apache.lucene.index.IndexReader.close(IndexReader.java:403) 70753 at org.apache.lucene.index.FilterDirectoryReader.doClose(FilterDirectoryReader.java:134) . 85306 at org.apache.lucene.index.FilterDirectoryReader.doClose(FilterDirectoryReader.java:134) 85307 at org.apache.lucene.index.IndexReader.decRef(IndexReader.java:253) 85308 at com.google.gerrit.lucene.WrappableSearcherManager.decRef(WrappableSearcherManager.java:140) 85309 at com.google.gerrit.lucene.WrappableSearcherManager.decRef(WrappableSearcherManager.java:68) 85310 at org.apache.lucene.search.ReferenceManager.release(ReferenceManager.java:274) 85311 at org.apache.lucene.search.ReferenceManager.doMaybeRefresh(ReferenceManager.java:189) 85312 at org.apache.lucene.search.ReferenceManager.maybeRefreshBlocking(ReferenceManager.java:253) 85313 at org.apache.lucene.search.ControlledRealTimeReopenThread.run(ControlledRealTimeReopenThread.java:245) [3] https://gerrit.googlesource.com/gerrit/+/refs/heads/stable-2.12/gerrit-lucene/src/main/java/com/google/gerrit/lucene/WrappableSearcherManager.java [4] https://github.com/apache/lucene-solr/blob/lucene_solr_5_0/lucene/core/src/java/org/apache/lucene/search/SearcherManager.java