murblanc commented on a change in pull request #1561: URL: https://github.com/apache/lucene-solr/pull/1561#discussion_r438965089
########## File path: solr/core/src/java/org/apache/solr/cloud/OverseerTaskProcessor.java ########## @@ -253,20 +277,22 @@ public void run() { continue; } - blockedTasks.clear(); // clear it now; may get refilled below. + // clear the blocked tasks, may get refilled below. Given blockedTasks can only get entries from heads and heads + // has at most MAX_BLOCKED_TASKS tasks, blockedTasks will never exceed MAX_BLOCKED_TASKS entries. + // Note blockedTasks can't be cleared too early as it is used in the excludedTasks Predicate above. + blockedTasks.clear(); + + // Trigger the creation of a new Session used for locking when/if a lock is later acquired on the OverseerCollectionMessageHandler + batchSessionId++; - taskBatch.batchId++; boolean tooManyTasks = false; for (QueueEvent head : heads) { if (!tooManyTasks) { - synchronized (runningTasks) { tooManyTasks = runningTasksSize() >= MAX_PARALLEL_TASKS; - } } if (tooManyTasks) { // Too many tasks are running, just shove the rest into the "blocked" queue. - if(blockedTasks.size() < MAX_BLOCKED_TASKS) - blockedTasks.put(head.getId(), head); + blockedTasks.put(head.getId(), head); Review comment: Commented line 280 above. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org