You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2012/11/03 22:41:28 UTC
svn commit: r1405426 - in /lucene/dev/branches/branch_4x: ./ lucene/
lucene/core/ lucene/core/src/java/org/apache/lucene/index/
lucene/core/src/java/org/apache/lucene/util/
lucene/core/src/test/org/apache/lucene/index/
Author: mikemccand
Date: Sat Nov 3 21:41:27 2012
New Revision: 1405426
URL: http://svn.apache.org/viewvc?rev=1405426&view=rev
Log:
LUCENE-4529: fix test bug, null out the first buffer in Int/ByteBlockPool on reset
Modified:
lucene/dev/branches/branch_4x/ (props changed)
lucene/dev/branches/branch_4x/lucene/ (props changed)
lucene/dev/branches/branch_4x/lucene/core/ (props changed)
lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java
lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/TermsHash.java
lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/util/ByteBlockPool.java
lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/util/IntBlockPool.java
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java
Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java?rev=1405426&r1=1405425&r2=1405426&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java Sat Nov 3 21:41:27 2012
@@ -582,6 +582,9 @@ class DocumentsWriterPerThread {
infoStream.message("DWPT", "flush: write " + delCount + " deletes gen=" + flushedSegment.segmentInfo.getDelGen());
}
+ // TODO: we should prune the segment if it's 100%
+ // deleted... but merge will also catch it.
+
// TODO: in the NRT case it'd be better to hand
// this del vector over to the
// shortly-to-be-opened SegmentReader and let it
Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/TermsHash.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/TermsHash.java?rev=1405426&r1=1405425&r2=1405426&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/TermsHash.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/TermsHash.java Sat Nov 3 21:41:27 2012
@@ -90,8 +90,8 @@ final class TermsHash extends InvertedDo
// Clear all state
void reset() {
// we don't reuse so we drop everything and don't fill with 0
- intPool.reset();
- bytePool.reset();
+ intPool.reset(false, false);
+ bytePool.reset(false, false);
}
@Override
Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/util/ByteBlockPool.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/util/ByteBlockPool.java?rev=1405426&r1=1405425&r2=1405426&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/util/ByteBlockPool.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/util/ByteBlockPool.java Sat Nov 3 21:41:27 2012
@@ -21,8 +21,6 @@ import java.util.Arrays;
import java.util.List;
import org.apache.lucene.store.DataOutput;
-import org.apache.lucene.util.IntBlockPool.SliceReader;
-import org.apache.lucene.util.IntBlockPool.SliceWriter;
import static org.apache.lucene.util.RamUsageEstimator.NUM_BYTES_OBJECT_REF;
@@ -183,6 +181,7 @@ public final class ByteBlockPool {
buffer = buffers[0];
} else {
bufferUpto = -1;
+ buffers[0] = null;
byteUpto = BYTE_BLOCK_SIZE;
byteOffset = -BYTE_BLOCK_SIZE;
buffer = null;
Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/util/IntBlockPool.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/util/IntBlockPool.java?rev=1405426&r1=1405425&r2=1405426&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/util/IntBlockPool.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/util/IntBlockPool.java Sat Nov 3 21:41:27 2012
@@ -121,22 +121,23 @@ public final class IntBlockPool {
if (bufferUpto > 0 || !reuseFirst) {
final int offset = reuseFirst ? 1 : 0;
- // Recycle all but the first buffer
- allocator.recycleIntBlocks(buffers, offset, 1+bufferUpto);
- Arrays.fill(buffers, offset, bufferUpto+1, null);
- }
- if (reuseFirst) {
- // Re-use the first buffer
- bufferUpto = 0;
- intUpto = 0;
- intOffset = 0;
- buffer = buffers[0];
- } else {
- bufferUpto = -1;
- intUpto = INT_BLOCK_SIZE;
- intOffset = -INT_BLOCK_SIZE;
- buffer = null;
- }
+ // Recycle all but the first buffer
+ allocator.recycleIntBlocks(buffers, offset, 1+bufferUpto);
+ Arrays.fill(buffers, offset, bufferUpto+1, null);
+ }
+ if (reuseFirst) {
+ // Re-use the first buffer
+ bufferUpto = 0;
+ intUpto = 0;
+ intOffset = 0;
+ buffer = buffers[0];
+ } else {
+ bufferUpto = -1;
+ buffers[0] = null;
+ intUpto = INT_BLOCK_SIZE;
+ intOffset = -INT_BLOCK_SIZE;
+ buffer = null;
+ }
}
}
Modified: lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java?rev=1405426&r1=1405425&r2=1405426&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java Sat Nov 3 21:41:27 2012
@@ -114,7 +114,7 @@ public class TestStressIndexing2 extends
Directory dir1 = newDirectory();
Directory dir2 = newDirectory();
if (VERBOSE) {
- System.out.println(" nThreads=" + nThreads + " iter=" + iter + " range=" + range + " doPooling=" + doReaderPooling + " maxThreadStates=" + maxThreadStates + " sameFieldOrder=" + sameFieldOrder + " mergeFactor=" + mergeFactor);
+ System.out.println(" nThreads=" + nThreads + " iter=" + iter + " range=" + range + " doPooling=" + doReaderPooling + " maxThreadStates=" + maxThreadStates + " sameFieldOrder=" + sameFieldOrder + " mergeFactor=" + mergeFactor + " maxBufferedDocs=" + maxBufferedDocs);
}
Map<String,Document> docs = indexRandom(nThreads, iter, range, dir1, maxThreadStates, doReaderPooling);
if (VERBOSE) {
@@ -334,9 +334,10 @@ public class TestStressIndexing2 extends
if (fields == null) {
// make sure r1 is in fact empty (eg has only all
// deleted docs):
+ Bits liveDocs = MultiFields.getLiveDocs(r1);
DocsEnum docs = null;
while(termsEnum.next() != null) {
- docs = _TestUtil.docs(random(), termsEnum, null, docs, 0);
+ docs = _TestUtil.docs(random(), termsEnum, liveDocs, docs, 0);
while(docs.nextDoc() != DocIdSetIterator.NO_MORE_DOCS) {
fail("r1 is not empty but r2 is");
}