Hmm, the disturbing part of this stack trace is how many nested IndexReader.reportCloseToParentReaders there are: that's not right.
It looks like you have deeply nested IndexReaders. Why did you need to use this WrappableSearcherManager? It seems to disable an important check from SearcherManager. Mike McCandless http://blog.mikemccandless.com On Wed, Apr 27, 2016 at 11:00 AM, Saša Živkov <ziv...@gmail.com> wrote: > 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 >