lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael McCandless <luc...@mikemccandless.com>
Subject Re: StackOverflowError in ControlledRealTimeReopenThread.run
Date Thu, 28 Apr 2016 08:50:58 GMT
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 <zivkov@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
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message