+1 kudos Steve! Le mer. 28 déc. 2016 à 10:28, Dawid Weiss <dawid.we...@gmail.com> a écrit :
> 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 > >