mirror of https://github.com/apache/lucene.git
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/lucene-solr
This commit is contained in:
commit
ca84ca2f79
|
@ -2900,7 +2900,7 @@ public class TestIndexWriter extends LuceneTestCase {
|
||||||
.setMaxBufferedDocs(Integer.MAX_VALUE)
|
.setMaxBufferedDocs(Integer.MAX_VALUE)
|
||||||
.setRAMBufferSizeMB(IndexWriterConfig.DISABLE_AUTO_FLUSH));
|
.setRAMBufferSizeMB(IndexWriterConfig.DISABLE_AUTO_FLUSH));
|
||||||
AtomicBoolean done = new AtomicBoolean(false);
|
AtomicBoolean done = new AtomicBoolean(false);
|
||||||
int numThreads = 1 + random().nextInt(3);
|
int numThreads = 2 + random().nextInt(3);
|
||||||
CountDownLatch latch = new CountDownLatch(numThreads);
|
CountDownLatch latch = new CountDownLatch(numThreads);
|
||||||
Set<String> indexingThreads = new HashSet<>();
|
Set<String> indexingThreads = new HashSet<>();
|
||||||
Thread[] threads = new Thread[numThreads];
|
Thread[] threads = new Thread[numThreads];
|
||||||
|
@ -2929,7 +2929,7 @@ public class TestIndexWriter extends LuceneTestCase {
|
||||||
try {
|
try {
|
||||||
int numIters = rarely() ? 1 + random().nextInt(5) : 1;
|
int numIters = rarely() ? 1 + random().nextInt(5) : 1;
|
||||||
for (int i = 0; i < numIters; i++) {
|
for (int i = 0; i < numIters; i++) {
|
||||||
waitForDocs(w);
|
waitForDocsInBuffers(w, Math.min(2, threads.length));
|
||||||
w.commit();
|
w.commit();
|
||||||
assertTrue(flushingThreads.toString(), flushingThreads.contains(Thread.currentThread().getName()));
|
assertTrue(flushingThreads.toString(), flushingThreads.contains(Thread.currentThread().getName()));
|
||||||
flushingThreads.retainAll(indexingThreads);
|
flushingThreads.retainAll(indexingThreads);
|
||||||
|
@ -2939,7 +2939,7 @@ public class TestIndexWriter extends LuceneTestCase {
|
||||||
numIters = 0;
|
numIters = 0;
|
||||||
while (true) {
|
while (true) {
|
||||||
assertFalse("should finish in less than 100 iterations", numIters++ >= 100);
|
assertFalse("should finish in less than 100 iterations", numIters++ >= 100);
|
||||||
waitForDocs(w);
|
waitForDocsInBuffers(w, Math.min(2, threads.length));
|
||||||
w.flush();
|
w.flush();
|
||||||
flushingThreads.retainAll(indexingThreads);
|
flushingThreads.retainAll(indexingThreads);
|
||||||
if (flushingThreads.isEmpty() == false) {
|
if (flushingThreads.isEmpty() == false) {
|
||||||
|
@ -2955,10 +2955,25 @@ public class TestIndexWriter extends LuceneTestCase {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void waitForDocs(IndexWriter w) {
|
private static void waitForDocsInBuffers(IndexWriter w, int buffersWithDocs) {
|
||||||
int numDocsInRam = w.numRamDocs();
|
// wait until at least N threadstates have a doc in order to observe
|
||||||
|
// who flushes the segments.
|
||||||
while(true) {
|
while(true) {
|
||||||
if (numDocsInRam != w.numRamDocs()) {
|
int numStatesWithDocs = 0;
|
||||||
|
DocumentsWriterPerThreadPool perThreadPool = w.docWriter.perThreadPool;
|
||||||
|
for (int i = 0; i < perThreadPool.getActiveThreadStateCount(); i++) {
|
||||||
|
DocumentsWriterPerThreadPool.ThreadState threadState = perThreadPool.getThreadState(i);
|
||||||
|
threadState.lock();
|
||||||
|
try {
|
||||||
|
DocumentsWriterPerThread dwpt = threadState.dwpt;
|
||||||
|
if (dwpt != null && dwpt.getNumDocsInRAM() > 1) {
|
||||||
|
numStatesWithDocs++;
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
threadState.unlock();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (numStatesWithDocs >= buffersWithDocs) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -160,6 +160,8 @@ New Features
|
||||||
Bug Fixes
|
Bug Fixes
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
|
* SOLR-11423: Overseer queue needs a hard cap (maximum size) that clients respect (Scott Blum, Joshua Humphries, Noble Paul)
|
||||||
|
|
||||||
* SOLR-11445: Overseer should not hang when process bad message. (Cao Manh Dat, shalin)
|
* SOLR-11445: Overseer should not hang when process bad message. (Cao Manh Dat, shalin)
|
||||||
|
|
||||||
* SOLR-11447: ZkStateWriter should process commands in atomic. (Cao Manh Dat, shalin)
|
* SOLR-11447: ZkStateWriter should process commands in atomic. (Cao Manh Dat, shalin)
|
||||||
|
@ -443,8 +445,6 @@ New Features
|
||||||
Bug Fixes
|
Bug Fixes
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
* SOLR-11423: Overseer queue needs a hard cap (maximum size) that clients respect (Scott Blum, Joshua Humphries, Noble Paul)
|
|
||||||
|
|
||||||
* SOLR-10602: Triggers should be able to restore state from old instances when taking over. (shalin)
|
* SOLR-10602: Triggers should be able to restore state from old instances when taking over. (shalin)
|
||||||
|
|
||||||
* SOLR-10714: OverseerTriggerThread does not start triggers on overseer start until autoscaling
|
* SOLR-10714: OverseerTriggerThread does not start triggers on overseer start until autoscaling
|
||||||
|
|
Loading…
Reference in New Issue