Hi Mike, My Jenkins's nightly monster trunk job failed on both these tests last night, and the seeds no longer reproduce after your fix.
However, a third test failed in the same run, and it still reproduces for me - not sure if it’s related though: —— [junit4] Suite: org.apache.lucene.index.TestSwappedIndexFiles [junit4] 2> NOTE: reproduce with: ant test -Dtestcase=TestSwappedIndexFiles -Dtests.method=test -Dtests.seed=44AABCD1741D13BA -Dtests.nightly=true -Dtests.slow=true -Dtests.locale=nl -Dtests.timezone=Asia/Rangoon -Dtests.asserts=true -Dtests.file.encoding=UTF-8 [junit4] ERROR 0.30s J0 | TestSwappedIndexFiles.test <<< [junit4] > Throwable #1: java.io.FileNotFoundException: extra0 in dir=RAMDirectory@2b74a31d lockFactory=org.apache.lucene.store.SingleInstanceLockFactory@7454f1e9 [junit4] > at __randomizedtesting.SeedInfo.seed([44AABCD1741D13BA:CCFE830BDAE17E42]:0) [junit4] > at org.apache.lucene.store.MockDirectoryWrapper.openInput(MockDirectoryWrapper.java:677) [junit4] > at org.apache.lucene.store.Directory.copyFrom(Directory.java:154) [junit4] > at org.apache.lucene.store.MockDirectoryWrapper.copyFrom(MockDirectoryWrapper.java:1050) [junit4] > at org.apache.lucene.index.TestSwappedIndexFiles.swapOneFile(TestSwappedIndexFiles.java:105) [junit4] > at org.apache.lucene.index.TestSwappedIndexFiles.swapFiles(TestSwappedIndexFiles.java:92) [junit4] > at org.apache.lucene.index.TestSwappedIndexFiles.test(TestSwappedIndexFiles.java:64) [junit4] > at java.lang.Thread.run(Thread.java:745) [junit4] 2> NOTE: leaving temporary files on disk at: /var/lib/jenkins/jobs/Lucene-core-nightly-monster-trunk/workspace/lucene/build/core/test/J0/temp/lucene.index.TestSwappedIndexFiles_44AABCD1741D13BA-001 [junit4] 2> NOTE: test params are: codec=CheapBastard, sim=ClassicSimilarity, locale=nl, timezone=Asia/Rangoon [junit4] 2> NOTE: Linux 4.1.0-custom2-amd64 amd64/Oracle Corporation 1.8.0_45 (64-bit)/cpus=16,threads=1,free=940415488,total=2549088256 —— -- Steve www.lucidworks.com > On Jan 28, 2016, at 11:32 AM, [email protected] wrote: > > Repository: lucene-solr > Updated Branches: > refs/heads/master 79e384bac -> 47fb35c20 > > > fix false failures from test bugs > > > Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo > Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/47fb35c2 > Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/47fb35c2 > Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/47fb35c2 > > Branch: refs/heads/master > Commit: 47fb35c20ac22c0226daa583e0179f8805e54664 > Parents: 79e384b > Author: Mike McCandless <[email protected]> > Authored: Thu Jan 28 11:29:37 2016 -0500 > Committer: Mike McCandless <[email protected]> > Committed: Thu Jan 28 11:30:18 2016 -0500 > > ---------------------------------------------------------------------- > .../index/TestAllFilesCheckIndexHeader.java | 23 +++++++++++++++----- > .../index/TestAllFilesDetectTruncation.java | 4 +++- > 2 files changed, 21 insertions(+), 6 deletions(-) > ---------------------------------------------------------------------- > > > http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/47fb35c2/lucene/core/src/test/org/apache/lucene/index/TestAllFilesCheckIndexHeader.java > ---------------------------------------------------------------------- > diff --git > a/lucene/core/src/test/org/apache/lucene/index/TestAllFilesCheckIndexHeader.java > > b/lucene/core/src/test/org/apache/lucene/index/TestAllFilesCheckIndexHeader.java > index 9dffaa8..3d8aeff 100644 > --- > a/lucene/core/src/test/org/apache/lucene/index/TestAllFilesCheckIndexHeader.java > +++ > b/lucene/core/src/test/org/apache/lucene/index/TestAllFilesCheckIndexHeader.java > @@ -19,6 +19,7 @@ package org.apache.lucene.index; > > import java.io.EOFException; > import java.io.IOException; > +import java.util.Arrays; > import java.util.Collections; > > import org.apache.lucene.analysis.MockAnalyzer; > @@ -80,7 +81,9 @@ public class TestAllFilesCheckIndexHeader extends > LuceneTestCase { > > private void checkIndexHeader(Directory dir) throws IOException { > for(String name : dir.listAll()) { > - checkOneFile(dir, name); > + if (name.equals(IndexWriter.WRITE_LOCK_NAME) == false) { > + checkOneFile(dir, name); > + } > } > } > > @@ -99,15 +102,25 @@ public class TestAllFilesCheckIndexHeader extends > LuceneTestCase { > if (name.equals(victim) == false) { > dirCopy.copyFrom(dir, name, name, IOContext.DEFAULT); > } else { > - try(IndexOutput out = dirCopy.createOutput(name, > IOContext.DEFAULT); > - IndexInput in = dir.openInput(name, IOContext.DEFAULT)) { > + > + // Iterate until our randomly generated bytes are indeed different > from the first bytes of the file ... the vast majority of the > + // time this will only require one iteration! > + while (true) { > + try(IndexOutput out = dirCopy.createOutput(name, > IOContext.DEFAULT); > + IndexInput in = dir.openInput(name, IOContext.DEFAULT)) { > // keeps same file length, but replaces the first wrongBytes > with random bytes: > byte[] bytes = new byte[wrongBytes]; > random().nextBytes(bytes); > out.writeBytes(bytes, 0, bytes.length); > - in.seek(wrongBytes); > - out.copyBytes(in, victimLength - wrongBytes); > + byte[] bytes2 = new byte[wrongBytes]; > + in.readBytes(bytes2, 0, bytes2.length); > + if (Arrays.equals(bytes, bytes2) == false) { > + // We successfully randomly generated bytes that differ from > the bytes in the file: > + out.copyBytes(in, victimLength - wrongBytes); > + break; > + } > } > + } > } > dirCopy.sync(Collections.singleton(name)); > } > > http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/47fb35c2/lucene/core/src/test/org/apache/lucene/index/TestAllFilesDetectTruncation.java > ---------------------------------------------------------------------- > diff --git > a/lucene/core/src/test/org/apache/lucene/index/TestAllFilesDetectTruncation.java > > b/lucene/core/src/test/org/apache/lucene/index/TestAllFilesDetectTruncation.java > index bda5857..e5aa6c7 100644 > --- > a/lucene/core/src/test/org/apache/lucene/index/TestAllFilesDetectTruncation.java > +++ > b/lucene/core/src/test/org/apache/lucene/index/TestAllFilesDetectTruncation.java > @@ -80,7 +80,9 @@ public class TestAllFilesDetectTruncation extends > LuceneTestCase { > > private void checkTruncation(Directory dir) throws IOException { > for(String name : dir.listAll()) { > - truncateOneFile(dir, name); > + if (name.equals(IndexWriter.WRITE_LOCK_NAME) == false) { > + truncateOneFile(dir, name); > + } > } > } > > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
