sequence numbers: fix test bug

This commit is contained in:
Mike McCandless 2016-06-04 14:11:37 -04:00
parent 06ff43718f
commit b0b7c81cfc
2 changed files with 23 additions and 14 deletions

View File

@ -149,6 +149,11 @@ public abstract class IndexInput extends DataInput implements Cloneable,Closeabl
slice.seek(pos); slice.seek(pos);
return slice.readLong(); return slice.readLong();
} }
@Override
public String toString() {
return "RandomAccessInput(" + IndexInput.this.toString() + ")";
}
}; };
} }
} }

View File

@ -17,6 +17,14 @@
package org.apache.lucene.index; package org.apache.lucene.index;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicInteger;
import org.apache.lucene.document.Document; import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field; import org.apache.lucene.document.Field;
import org.apache.lucene.document.NumericDocValuesField; import org.apache.lucene.document.NumericDocValuesField;
@ -28,17 +36,10 @@ import org.apache.lucene.search.TermQuery;
import org.apache.lucene.search.TopDocs; import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.Directory; import org.apache.lucene.store.Directory;
import org.apache.lucene.util.Bits; import org.apache.lucene.util.Bits;
import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
import org.apache.lucene.util.LuceneTestCase; import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util.TestUtil; import org.apache.lucene.util.TestUtil;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicInteger;
public class TestIndexingSequenceNumbers extends LuceneTestCase { public class TestIndexingSequenceNumbers extends LuceneTestCase {
public void testBasic() throws Exception { public void testBasic() throws Exception {
@ -316,6 +317,9 @@ public class TestIndexingSequenceNumbers extends LuceneTestCase {
final IndexWriter w = new IndexWriter(dir, iwc); final IndexWriter w = new IndexWriter(dir, iwc);
final int numThreads = TestUtil.nextInt(random(), 2, 10); final int numThreads = TestUtil.nextInt(random(), 2, 10);
if (VERBOSE) {
System.out.println("TEST: numThreads=" + numThreads);
}
Thread[] threads = new Thread[numThreads]; Thread[] threads = new Thread[numThreads];
//System.out.println("TEST: iter=" + iter + " opCount=" + opCount + " idCount=" + idCount + " threadCount=" + threads.length); //System.out.println("TEST: iter=" + iter + " opCount=" + opCount + " idCount=" + idCount + " threadCount=" + threads.length);
final CountDownLatch startingGun = new CountDownLatch(1); final CountDownLatch startingGun = new CountDownLatch(1);
@ -383,6 +387,7 @@ public class TestIndexingSequenceNumbers extends LuceneTestCase {
} }
} }
}; };
threads[i].setName("thread" + i);
threads[i].start(); threads[i].start();
} }
startingGun.countDown(); startingGun.countDown();
@ -416,10 +421,9 @@ public class TestIndexingSequenceNumbers extends LuceneTestCase {
for(Operation op : threadOps.get(threadID)) { for(Operation op : threadOps.get(threadID)) {
if (op.seqNo <= commitSeqNo && op.seqNo > seqNos[op.id]) { if (op.seqNo <= commitSeqNo && op.seqNo > seqNos[op.id]) {
seqNos[op.id] = op.seqNo; seqNos[op.id] = op.seqNo;
if (op.what == 0) { assert op.what == 0;
expectedThreadIDs[op.id] = threadID; expectedThreadIDs[op.id] = threadID;
} }
}
assertTrue(op.seqNo > lastSeqNo); assertTrue(op.seqNo > lastSeqNo);
lastSeqNo = op.seqNo; lastSeqNo = op.seqNo;
@ -437,9 +441,9 @@ public class TestIndexingSequenceNumbers extends LuceneTestCase {
// We pre-add all ids up front: // We pre-add all ids up front:
assert expectedThreadIDs[id] != -1; assert expectedThreadIDs[id] != -1;
assertEquals(1, hits.totalHits); assertEquals(1, hits.totalHits);
int actualThreadID = (int) docValues.get(id); int actualThreadID = (int) docValues.get(hits.scoreDocs[0].doc);
if (expectedThreadIDs[id] != actualThreadID) { if (expectedThreadIDs[id] != actualThreadID) {
System.out.println("FAIL: commit=" + i + " (of " + commits.size() + ") id=" + id + " expectedThreadID=" + expectedThreadIDs[id] + " vs actualThreadID=" + actualThreadID + " commitSeqNo=" + commitSeqNo + " numThreads=" + numThreads); System.out.println("FAIL: commit=" + i + " (of " + commits.size() + ") id=" + id + " expectedThreadID=" + expectedThreadIDs[id] + " vs actualThreadID=" + actualThreadID + " commitSeqNo=" + commitSeqNo + " numThreads=" + numThreads + " reader=" + r + " commit=" + indexCommits.get(i));
for(int threadID=0;threadID<threadOps.size();threadID++) { for(int threadID=0;threadID<threadOps.size();threadID++) {
for(Operation op : threadOps.get(threadID)) { for(Operation op : threadOps.get(threadID)) {
if (id == op.id) { if (id == op.id) {
@ -447,7 +451,7 @@ public class TestIndexingSequenceNumbers extends LuceneTestCase {
} }
} }
} }
assertEquals("id=" + id, expectedThreadIDs[id], actualThreadID); assertEquals("id=" + id + " docID=" + hits.scoreDocs[0].doc, expectedThreadIDs[id], actualThreadID);
} }
} }
w.close(); w.close();