Skip to content

Commit feed4ca

Browse files
synchronized close
1 parent b2e65a2 commit feed4ca

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

server/src/main/java/org/elasticsearch/index/engine/ThreadPoolMergeScheduler.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -411,10 +411,13 @@ protected void message(String message) {
411411

412412
@Override
413413
public void close() throws IOException {
414-
closed = true;
415-
// enqueue any backlogged merge tasks, because the merge queue assumes that the backlogged tasks are always re-enqueued
416-
enqueueBackloggedTasks();
417-
maybeSignalAllMergesDoneAfterClose();
414+
synchronized (this) {
415+
closed = true;
416+
// enqueue any backlogged merge tasks, because the merge queue assumes that the backlogged tasks are always re-enqueued
417+
enqueueBackloggedTasks();
418+
// signal if there aren't any currently running merges
419+
maybeSignalAllMergesDoneAfterClose();
420+
}
418421
try {
419422
closedWithNoCurrentlyRunningMerges.await();
420423
} catch (InterruptedException e) {

0 commit comments

Comments
 (0)