Tricky indeed, kudos Steve. D.
On Wed, Dec 28, 2016 at 10:20 AM, Michael McCandless <luc...@mikemccandless.com> wrote: > Phew, tricky! The patch looks good Steve. Thanks for digging and > beasting and finding a separate crab! > > Mike McCandless > > http://blog.mikemccandless.com > > > On Tue, Dec 27, 2016 at 10:00 PM, Steve Rowe <sar...@gmail.com> wrote: >> Yes, I’ve posted a couple of them on the issue, but they don’t reproduce. >> >> My beasting so far (couple thousand iterations) hasn’t yet reproduced. >> Beasting did find <https://issues.apache.org/jira/browse/LUCENE-7605> though. >> >> I have an idea about what might cause the problem: under multi-threaded use, >> in lookup(), the suggester’s SearcherManager could be re-assigned in the >> middle of an acquire/release cycle as a result of >> <https://issues.apache.org/jira/browse/LUCENE-7564>. I’m also beasting a >> change to take a local reference and use it for the whole cycle.[1] >> >> -- >> Steve >> www.lucidworks.com >> >> [1] Patch to hold SearcherManager constant in >> AnalyzingInfixSuggester.lookup(): >> >> —— >> diff --git >> a/lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/AnalyzingInfixSuggester.java >> >> b/lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/AnalyzingInfixSuggester.java >> index 1e98361..c63726f 100644 >> --- >> a/lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/AnalyzingInfixSuggester.java >> +++ >> b/lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/AnalyzingInfixSuggester.java >> @@ -642,7 +642,8 @@ public class AnalyzingInfixSuggester extends Lookup >> implements Closeable { >> // only retrieve the first num hits now: >> Collector c2 = new EarlyTerminatingSortingCollector(c, SORT, num); >> List<LookupResult> results = null; >> - IndexSearcher searcher = searcherMgr.acquire(); >> + SearcherManager mgr = searcherMgr; // use local reference to perform >> acquire & release on same SearcherManager >> + IndexSearcher searcher = mgr.acquire(); >> try { >> //System.out.println("got searcher=" + searcher); >> searcher.search(finalQuery, c2); >> @@ -653,7 +654,7 @@ public class AnalyzingInfixSuggester extends Lookup >> implements Closeable { >> // hits = searcher.search(query, null, num, SORT); >> results = createResults(searcher, hits, num, key, doHighlight, >> matchedTokens, prefixToken); >> } finally { >> - searcherMgr.release(searcher); >> + mgr.release(searcher); >> } >> >> //System.out.println((System.currentTimeMillis() - t0) + " msec for >> infix suggest"); >> —— >> >> >> >>> On Dec 26, 2016, at 5:56 PM, Michael McCandless <luc...@mikemccandless.com> >>> wrote: >>> >>> I think (not sure) these failures starting happening after >>> https://issues.apache.org/jira/browse/LUCENE-7564 ? >>> >>> Mike McCandless >>> >>> http://blog.mikemccandless.com >>> >>> >>> On Mon, Dec 26, 2016 at 4:29 PM, Apache Jenkins Server >>> <jenk...@builds.apache.org> wrote: >>>> Build: https://builds.apache.org/job/Lucene-Solr-Tests-6.x/628/ >>>> >>>> 1 tests failed. >>>> FAILED: >>>> org.apache.lucene.search.suggest.analyzing.AnalyzingInfixSuggesterTest.testRandomNRT >>>> >>>> Error Message: >>>> Captured an uncaught exception in thread: Thread[id=29, name=Thread-11, >>>> state=RUNNABLE, group=TGRP-AnalyzingInfixSuggesterTest] >>>> >>>> Stack Trace: >>>> com.carrotsearch.randomizedtesting.UncaughtExceptionError: Captured an >>>> uncaught exception in thread: Thread[id=29, name=Thread-11, >>>> state=RUNNABLE, group=TGRP-AnalyzingInfixSuggesterTest] >>>> at >>>> __randomizedtesting.SeedInfo.seed([608DC176393E1CC5:C4A3CFCB61E1C079]:0) >>>> Caused by: org.apache.lucene.store.AlreadyClosedException: this >>>> ReferenceManager is closed >>>> at __randomizedtesting.SeedInfo.seed([608DC176393E1CC5]:0) >>>> at >>>> org.apache.lucene.search.ReferenceManager.acquire(ReferenceManager.java:98) >>>> at >>>> org.apache.lucene.search.suggest.analyzing.AnalyzingInfixSuggester.lookup(AnalyzingInfixSuggester.java:645) >>>> at >>>> org.apache.lucene.search.suggest.analyzing.AnalyzingInfixSuggester.lookup(AnalyzingInfixSuggester.java:457) >>>> at >>>> org.apache.lucene.search.suggest.analyzing.AnalyzingInfixSuggesterTest$LookupThread.run(AnalyzingInfixSuggesterTest.java:533) >>>> >>>> >>>> >>>> >>>> Build Log: >>>> [...truncated 9362 lines...] >>>> [junit4] Suite: >>>> org.apache.lucene.search.suggest.analyzing.AnalyzingInfixSuggesterTest >>>> [junit4] 2> ??? 26, 2016 1:30:30 ?? >>>> com.carrotsearch.randomizedtesting.RandomizedRunner$QueueUncaughtExceptionsHandler >>>> uncaughtException >>>> [junit4] 2> WARNING: Uncaught exception in thread: >>>> Thread[Thread-11,5,TGRP-AnalyzingInfixSuggesterTest] >>>> [junit4] 2> org.apache.lucene.store.AlreadyClosedException: this >>>> ReferenceManager is closed >>>> [junit4] 2> at >>>> __randomizedtesting.SeedInfo.seed([608DC176393E1CC5]:0) >>>> [junit4] 2> at >>>> org.apache.lucene.search.ReferenceManager.acquire(ReferenceManager.java:98) >>>> [junit4] 2> at >>>> org.apache.lucene.search.suggest.analyzing.AnalyzingInfixSuggester.lookup(AnalyzingInfixSuggester.java:645) >>>> [junit4] 2> at >>>> org.apache.lucene.search.suggest.analyzing.AnalyzingInfixSuggester.lookup(AnalyzingInfixSuggester.java:457) >>>> [junit4] 2> at >>>> org.apache.lucene.search.suggest.analyzing.AnalyzingInfixSuggesterTest$LookupThread.run(AnalyzingInfixSuggesterTest.java:533) >>>> [junit4] 2> >>>> [junit4] 2> NOTE: reproduce with: ant test >>>> -Dtestcase=AnalyzingInfixSuggesterTest -Dtests.method=testRandomNRT >>>> -Dtests.seed=608DC176393E1CC5 -Dtests.multiplier=2 -Dtests.slow=true >>>> -Dtests.locale=el -Dtests.timezone=SystemV/MST7MDT -Dtests.asserts=true >>>> -Dtests.file.encoding=US-ASCII >>>> [junit4] ERROR 32.8s J1 | AnalyzingInfixSuggesterTest.testRandomNRT <<< >>>> [junit4] > Throwable #1: >>>> com.carrotsearch.randomizedtesting.UncaughtExceptionError: Captured an >>>> uncaught exception in thread: Thread[id=29, name=Thread-11, >>>> state=RUNNABLE, group=TGRP-AnalyzingInfixSuggesterTest] >>>> [junit4] > at >>>> __randomizedtesting.SeedInfo.seed([608DC176393E1CC5:C4A3CFCB61E1C079]:0) >>>> [junit4] > Caused by: org.apache.lucene.store.AlreadyClosedException: >>>> this ReferenceManager is closed >>>> [junit4] > at >>>> __randomizedtesting.SeedInfo.seed([608DC176393E1CC5]:0) >>>> [junit4] > at >>>> org.apache.lucene.search.ReferenceManager.acquire(ReferenceManager.java:98) >>>> [junit4] > at >>>> org.apache.lucene.search.suggest.analyzing.AnalyzingInfixSuggester.lookup(AnalyzingInfixSuggester.java:645) >>>> [junit4] > at >>>> org.apache.lucene.search.suggest.analyzing.AnalyzingInfixSuggester.lookup(AnalyzingInfixSuggester.java:457) >>>> [junit4] > at >>>> org.apache.lucene.search.suggest.analyzing.AnalyzingInfixSuggesterTest$LookupThread.run(AnalyzingInfixSuggesterTest.java:533) >>>> [junit4] 2> NOTE: test params are: codec=Asserting(Lucene62): >>>> {textgrams=PostingsFormat(name=Memory doPackFST= false), >>>> text=PostingsFormat(name=Memory doPackFST= false), >>>> contexts=PostingsFormat(name=LuceneVarGapFixedInterval), >>>> exacttext=PostingsFormat(name=LuceneVarGapFixedInterval)}, >>>> docValues:{payloads=DocValuesFormat(name=Memory), >>>> textgrams=DocValuesFormat(name=Memory), >>>> weight=DocValuesFormat(name=Lucene54), text=DocValuesFormat(name=Memory), >>>> contexts=DocValuesFormat(name=Lucene54), >>>> exacttext=DocValuesFormat(name=Lucene54)}, maxPointsInLeafNode=846, >>>> maxMBSortInHeap=6.751687589960355, >>>> sim=RandomSimilarity(queryNorm=false,coord=crazy): {}, locale=el, >>>> timezone=SystemV/MST7MDT >>>> [junit4] 2> NOTE: Linux 3.13.0-85-generic amd64/Oracle Corporation >>>> 1.8.0_102 (64-bit)/cpus=4,threads=1,free=158780648,total=343932928 >>>> [junit4] 2> NOTE: All tests run in this JVM: [TestContextQuery, >>>> TestSuggestStopFilter, TestPrefixCompletionQuery, >>>> AnalyzingInfixSuggesterTest] >>>> [junit4] Completed [28/32 (1!)] on J1 in 37.17s, 22 tests, 1 error <<< >>>> FAILURES! >>>> >>>> [...truncated 65892 lines...] >>>> >>>> >>>> >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org >>>> For additional commands, e-mail: dev-h...@lucene.apache.org >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org >>> For additional commands, e-mail: dev-h...@lucene.apache.org >>> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org >> For additional commands, e-mail: dev-h...@lucene.apache.org >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org > For additional commands, e-mail: dev-h...@lucene.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org