I pushed a fix ... thanks Steve. These tests will likely have other interesting failures ...
Mike McCandless http://blog.mikemccandless.com On Thu, Jan 28, 2016 at 11:53 AM, Michael McCandless <luc...@mikemccandless.com> wrote: > LOL extrafs, I'll fix. Thanks Steve. > > Mike McCandless > > http://blog.mikemccandless.com > > > On Thu, Jan 28, 2016 at 11:50 AM, Steve Rowe <sar...@gmail.com> wrote: >> 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, mikemcc...@apache.org 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 <mikemcc...@apache.org> >>> Authored: Thu Jan 28 11:29:37 2016 -0500 >>> Committer: Mike McCandless <mikemcc...@apache.org> >>> 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: 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