[ https://issues.apache.org/jira/browse/LUCENE-2637?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Robert Muir updated LUCENE-2637: -------------------------------- Attachment: LUCENE-2637.patch Here's one suggested patch: So the problem is that the optimized FSDirectory.copyBytes() [LUCENE-2574] produces corrupt indexes with SimpleFSDirectory. I fixed the test to use newDirectory, so it won't fail just on windows with this bug.. the problem was the test used FSDirectory.open, so no unix users ever saw this. I pushed the optimized copyBytes up into NIOFSDirectory, where its safe, and restored FSDirectory's simple implementation. > TestIndexWriter.testRandomStoredFields randomly fails > ----------------------------------------------------- > > Key: LUCENE-2637 > URL: https://issues.apache.org/jira/browse/LUCENE-2637 > Project: Lucene - Java > Issue Type: Bug > Components: Tests > Affects Versions: 4.0 > Reporter: Robert Muir > Attachments: LUCENE-2637.patch > > > see > http://www.lucidimagination.com/search/document/36d2dbfc691909d5/bug_triggered_by_testindexwriter_testrandomstoredfields > for background > here are my steps to reproduce (most of the time, at least on windows): > {noformat} > 1. edit line 87 of TestIndexWriter to plugin the seed: > random = newRandom(3312389322103990899L); > 2. run this command: > ant clean test-core -Dtestcase=TestIndexWriter > -Dtestmethod=testRandomStoredFields -Dtests.iter=10 > -Dtests.codec="MockVariableIntBlock(29)" > {noformat} > I only set this up on trunk, it might affect 3x too (I feel like i have seen > it, but i'm not sure and i didnt test yet) > here are a few of the various types of fails i have seen: > {noformat} > [junit] Testsuite: org.apache.lucene.index.TestIndexWriter > [junit] Testcase: > testRandomStoredFields(org.apache.lucene.index.TestIndexWriter): Caused an > ERROR > [junit] Index: 4232, Size: 4 > [junit] java.lang.IndexOutOfBoundsException: Index: 4232, Size: 4 > [junit] at java.util.ArrayList.RangeCheck(ArrayList.java:547) > [junit] at java.util.ArrayList.get(ArrayList.java:322) > [junit] at > org.apache.lucene.index.FieldInfos.fieldInfo(FieldInfos.java:264) > [junit] at org.apache.lucene.index.FieldsReader.doc(FieldsReader.java:198) > [junit] at > org.apache.lucene.index.SegmentReader.document(SegmentReader.java:882) > [junit] at > org.apache.lucene.index.DirectoryReader.document(DirectoryReader.java:580) > [junit] at > org.apache.lucene.index.IndexReader.document(IndexReader.java:754) > [junit] at > org.apache.lucene.index.TestIndexWriter.testRandomStoredFields(TestIndexWriter.java:5212) > [junit] at > org.apache.lucene.util.LuceneTestCase.runBare(LuceneTestCase.java:397) > [junit] at > org.apache.lucene.util.LuceneTestCase.run(LuceneTestCase.java:389) > [junit] Testcase: > testRandomStoredFields(org.apache.lucene.index.TestIndexWriter): Caused an > ERROR > [junit] null > [junit] java.lang.NullPointerException > [junit] at > org.apache.lucene.index.FieldsReader.addField(FieldsReader.java:310) > [junit] at org.apache.lucene.index.FieldsReader.doc(FieldsReader.java:209) > [junit] at > org.apache.lucene.index.SegmentReader.document(SegmentReader.java:882) > [junit] at > org.apache.lucene.index.DirectoryReader.document(DirectoryReader.java:580) > [junit] at > org.apache.lucene.index.IndexReader.document(IndexReader.java:754) > [junit] at > org.apache.lucene.index.TestIndexWriter.testRandomStoredFields(TestIndexWriter.java:5212) > [junit] at > org.apache.lucene.util.LuceneTestCase.runBare(LuceneTestCase.java:397) > [junit] at > org.apache.lucene.util.LuceneTestCase.run(LuceneTestCase.java:389) > [junit] Testcase: > testRandomStoredFields(org.apache.lucene.index.TestIndexWriter): FAILED > [junit] null > [junit] junit.framework.AssertionFailedError > [junit] at > org.apache.lucene.util.LuceneTestCase.run(LuceneTestCase.java:389) > [junit] at org.apache.lucene.index.FieldsReader.doc(FieldsReader.java:202) > [junit] at > org.apache.lucene.index.SegmentReader.document(SegmentReader.java:882) > [junit] at > org.apache.lucene.index.DirectoryReader.document(DirectoryReader.java:580) > [junit] at > org.apache.lucene.index.IndexReader.document(IndexReader.java:754) > [junit] at > org.apache.lucene.index.TestIndexWriter.testRandomStoredFields(TestIndexWriter.java:5212) > [junit] at > org.apache.lucene.util.LuceneTestCase.runBare(LuceneTestCase.java:397) > [junit] Testcase: > testRandomStoredFields(org.apache.lucene.index.TestIndexWriter): FAILED > [junit] doc 16, field f3 is wrong expected:<nonsense unicode> but was > <different nonsense unicode> > [junit] junit.framework.ComparisonFailure: doc 16, field f3 is wrong > expected: <nonsense unicode> > but was <different nonsense unicode> > [junit] at > org.apache.lucene.index.TestIndexWriter.testRandomStoredFields(TestIndexWriter.java:5215) > [junit] at > org.apache.lucene.util.LuceneTestCase.runBare(LuceneTestCase.java:397) > [junit] at > org.apache.lucene.util.LuceneTestCase.run(LuceneTestCase.java:389) > [junit] > [junit] Testsuite: org.apache.lucene.index.TestIndexWriter > [junit] Testcase: > testRandomStoredFields(org.apache.lucene.index.TestIndexWriter): Caused an > ERROR > [junit] null > [junit] java.lang.NegativeArraySizeException > [junit] at > org.apache.lucene.index.FieldsReader.addField(FieldsReader.java:305) > [junit] at org.apache.lucene.index.FieldsReader.doc(FieldsReader.java:209) > [junit] at > org.apache.lucene.index.SegmentReader.document(SegmentReader.java:882) > [junit] at > org.apache.lucene.index.DirectoryReader.document(DirectoryReader.java:580) > [junit] at > org.apache.lucene.index.IndexReader.document(IndexReader.java:754) > [junit] at > org.apache.lucene.index.TestIndexWriter.testRandomStoredFields(TestIndexWriter.java:5212) > [junit] at > org.apache.lucene.util.LuceneTestCase.runBare(LuceneTestCase.java:397) > [junit] at > org.apache.lucene.util.LuceneTestCase.run(LuceneTestCase.java:389) > [junit] Testsuite: org.apache.lucene.index.TestIndexWriter > [junit] Testcase: > testRandomStoredFields(org.apache.lucene.index.TestIndexWriter): Caused an > ERROR > [junit] read past EOF > [junit] java.io.IOException: read past EOF > [junit] at > org.apache.lucene.store.BufferedIndexInput.readBytes(BufferedIndexInput.java:138) > ... > {noformat} -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org