Hi Erick, I filed LUCENE-5916 and attached a patch. Check it out and commit it in -- I would like you to understand on a concrete example why the patched code will work and the previous code didn't. :)
Dawid On Mon, Sep 1, 2014 at 8:24 AM, Dawid Weiss <[email protected]> wrote: >> Thanks Dawid! So my take-away is that this is just pilot error on my part, >> not something intrinsic to the code. > > I don't know enough about the code to say for sure, but to me that > FaultyIndexInput's count field should be reset before each test > (shouldn't propagate from test to test, effectively making each test > rely on the number of tests before it). As for the exception itself, > I've no idea -- didn't look at the code; I think it may be assuming > only one iteration. > > Dawid > >> >> Erick >> >> >> On Sun, Aug 31, 2014 at 12:46 PM, Dawid Weiss <[email protected]> >> wrote: >>> >>> It's because the exception is triggered in a static class >>> FaultyIndexInput (initialized in a static context >>> TestFieldsReader#beforeClass). When you ask for -Dtests.iters, only >>> the tests (methods) are duplicated, the static context remains the >>> same. So the "count" variable in FaultyIndexInput is actually >>> propagated from test to test and each repetition is not really atomic/ >>> isolated from others (search for one of recent e-mail to Ryan, it >>> contains a deeper information on why and how this works). >>> >>> You can repeat the failure if you repeat exactly the same seed for >>> each repetition (including test methods): >>> >>> ant test -Dtestcase=TestFieldsReader >>> -Dtests.seed=DFB0B84C4D087DFD:1DE75618D1B7C867 -Dtests.slow=true >>> -Dtests.locale=sr_ME -Dtests.timezone=Asia/Kashgar >>> -Dtests.file.encoding=UTF-8 -Dtests.iters=10 >>> >>> This yields: >>> >>> Tests with failures: >>> - org.apache.lucene.index.TestFieldsReader.testExceptions {#1 >>> seed=[DFB0B84C4D087DFD:1DE75618D1B7C867]} >>> - org.apache.lucene.index.TestFieldsReader.testExceptions {#2 >>> seed=[DFB0B84C4D087DFD:1DE75618D1B7C867]} >>> - org.apache.lucene.index.TestFieldsReader.testExceptions {#3 >>> seed=[DFB0B84C4D087DFD:1DE75618D1B7C867]} >>> - org.apache.lucene.index.TestFieldsReader.testExceptions {#4 >>> seed=[DFB0B84C4D087DFD:1DE75618D1B7C867]} >>> - org.apache.lucene.index.TestFieldsReader.testExceptions {#5 >>> seed=[DFB0B84C4D087DFD:1DE75618D1B7C867]} >>> - org.apache.lucene.index.TestFieldsReader.testExceptions {#6 >>> seed=[DFB0B84C4D087DFD:1DE75618D1B7C867]} >>> - org.apache.lucene.index.TestFieldsReader.testExceptions {#7 >>> seed=[DFB0B84C4D087DFD:1DE75618D1B7C867]} >>> - org.apache.lucene.index.TestFieldsReader.testExceptions {#8 >>> seed=[DFB0B84C4D087DFD:1DE75618D1B7C867]} >>> - org.apache.lucene.index.TestFieldsReader.testExceptions {#9 >>> seed=[DFB0B84C4D087DFD:1DE75618D1B7C867]} >>> >>> Note I included per-method seed in the -Dtests.seed. Also, #0 >>> iteration *does pass*; the remaining ones fail because of what I said >>> above. >>> >>> Dawid >>> >>> On Sun, Aug 31, 2014 at 6:20 AM, Erick Erickson <[email protected]> >>> wrote: >>> > I'm seeing the fairly easily-reproducible error below on trunk. >>> > Unfortunately it doesn't reproduce with the seed. I'm wondering if >>> > anyone >>> > has an inkling what's going on here? >>> > >>> > I did manage to notice that I screwed up the command I was _intending_ >>> > and >>> > actually issued the command below, although I have a hard time imagining >>> > that's the problem, unless it's something like running tests.iters on >>> > the >>> > full suite makes this happen. No wonder -Dtests.iters=100 didn't >>> > finish... >>> > Siiigggghhhh. >>> > >>> > ant -Dtestcasae=TestDistributedSearch -Dtests.iters=10 test >>> > >>> > Note I spelled 'testcase' as 'testcasae'... >>> > >>> > >>> > Stack trace: >>> > >>> > [junit4] Suite: org.apache.lucene.index.TestFieldsReader >>> > >>> > [junit4] 2> NOTE: reproduce with: ant test >>> > -Dtestcase=TestFieldsReader >>> > -Dtests.method=testExceptions -Dtests.seed=DFB0B84C4D087DFD >>> > -Dtests.slow=true -Dtests.locale=sr_ME -Dtests.timezone=Asia/Kashgar >>> > -Dtests.file.encoding=UTF-8 >>> > >>> > [junit4] ERROR 0.10s J2 | TestFieldsReader.testExceptions {#1 >>> > seed=[DFB0B84C4D087DFD:1DE75618D1B7C867]} <<< >>> > >>> > [junit4] > Throwable #1: java.io.IOException: Simulated network >>> > outage >>> > >>> > [junit4] > at >>> > __randomizedtesting.SeedInfo.seed([DFB0B84C4D087DFD:1DE75618D1B7C867]:0) >>> > >>> > [junit4] > at >>> > >>> > org.apache.lucene.index.TestFieldsReader$FaultyIndexInput.simOutage(TestFieldsReader.java:156) >>> > >>> > [junit4] > at >>> > >>> > org.apache.lucene.index.TestFieldsReader$FaultyIndexInput.readInternal(TestFieldsReader.java:161) >>> > >>> > [junit4] > at >>> > >>> > org.apache.lucene.store.BufferedIndexInput.refill(BufferedIndexInput.java:342) >>> > >>> > [junit4] > at >>> > >>> > org.apache.lucene.store.BufferedIndexInput.readBytes(BufferedIndexInput.java:140) >>> > >>> > [junit4] > at >>> > >>> > org.apache.lucene.store.BufferedIndexInput.readBytes(BufferedIndexInput.java:116) >>> > >>> > [junit4] > at >>> > >>> > org.apache.lucene.store.BufferedChecksumIndexInput.readBytes(BufferedChecksumIndexInput.java:49) >>> > >>> > [junit4] > at >>> > org.apache.lucene.store.DataInput.readString(DataInput.java:234) >>> > >>> > [junit4] > at >>> > >>> > org.apache.lucene.store.DataInput.readStringStringMap(DataInput.java:263) >>> > >>> > [junit4] > at >>> > >>> > org.apache.lucene.codecs.lucene46.Lucene46FieldInfosReader.read(Lucene46FieldInfosReader.java:93) >>> > >>> > [junit4] > at >>> > >>> > org.apache.lucene.index.SegmentReader.readFieldInfos(SegmentReader.java:216) >>> > >>> > [junit4] > at >>> > org.apache.lucene.index.SegmentReader.<init>(SegmentReader.java:97) >>> > >>> > [junit4] > at >>> > >>> > org.apache.lucene.index.StandardDirectoryReader$1.doBody(StandardDirectoryReader.java:59) >>> > >>> > [junit4] > at >>> > >>> > org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:795) >>> > >>> > [junit4] > at >>> > >>> > org.apache.lucene.index.StandardDirectoryReader.open(StandardDirectoryReader.java:50) >>> > >>> > [junit4] > at >>> > org.apache.lucene.index.DirectoryReader.open(DirectoryReader.java:64) >>> > >>> > [junit4] > at >>> > >>> > org.apache.lucene.index.TestFieldsReader.testExceptions(TestFieldsReader.java:209) >>> > >>> > [junit4] > at java.lang.Thread.run(Thread.java:745) >>> > >>> > [junit4] 2> NOTE: reproduce with: ant test >>> > -Dtestcase=TestFieldsReader >>> > -Dtests.method=testExceptions -Dtests.seed=DFB0B84C4D087DFD >>> > -Dtests.slow=true -Dtests.locale=sr_ME -Dtests.timezone=Asia/Kashgar >>> > -Dtests.file.encoding=UTF-8 >>> > [junit4] ERROR 0.13s J2 | TestFieldsReader.testExceptions {#2 >>> > seed=[DFB0B84C4D087DFD:930EC0C4807380AC]} <<< >>> > [junit4] > Throwable #1: java.io.IOException: Simulated network >>> > outage >>> > >>> > >>> > >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [email protected] >>> For additional commands, e-mail: [email protected] >>> >> --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
