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

Reply via email to