Awww, man, do I have to? I didn't write the test, I just accidentally tripped it by messing up the tests command ;)..
Seriously, thanks! It's always a Good Thing to dive a little deeper, I'll try to get my head around it today. Erick On Mon, Sep 1, 2014 at 6:00 AM, Dawid Weiss <[email protected]> wrote: > 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] > >
