diff --git a/core/trino-main/src/main/java/io/trino/execution/executor/dedicated/ThreadPerDriverTaskExecutor.java b/core/trino-main/src/main/java/io/trino/execution/executor/dedicated/ThreadPerDriverTaskExecutor.java index 77c4fc7c78b9..7692f6595fae 100644 --- a/core/trino-main/src/main/java/io/trino/execution/executor/dedicated/ThreadPerDriverTaskExecutor.java +++ b/core/trino-main/src/main/java/io/trino/execution/executor/dedicated/ThreadPerDriverTaskExecutor.java @@ -143,10 +143,12 @@ public synchronized TaskHandle addTask( } @Override - public synchronized void removeTask(TaskHandle handle) + public void removeTask(TaskHandle handle) { TaskEntry entry = (TaskEntry) handle; - tasks.remove(entry.taskId()); + synchronized (this) { + tasks.remove(entry.taskId()); + } if (!entry.isDestroyed()) { entry.destroy(); }