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]

Reply via email to