i suspect that this code is broken. Lines 331 - 343 in
org.apache.lucene.index.ConcurrentMergeScheduler.merge(IndexWriter)
mergeThreadCount() are currently active merges, they can be at most
maxThreadCount, maxMergeCount is number of queued merges defaulted with
maxThreadCount+2 and it can never be lower then maxThreadCount, which
means that condition in while can never become true.
synchronized(this) {
long startStallTime = 0;
while (mergeThreadCount() >= 1+maxMergeCount) {
startStallTime = System.currentTimeMillis();
if (verbose()) {
message(" too many merges; stalling...");
}
try {
wait();
} catch (InterruptedException ie) {
throw new ThreadInterruptedException(ie);
}
}
maxThreadCount+2;
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org