From 0c37b42bc725cd5373aab03467e74e2083cf4ef9 Mon Sep 17 00:00:00 2001 From: chovy Date: Thu, 22 Oct 2020 11:15:21 +0800 Subject: [PATCH] [Bug] Because of thread-safety problem , replace connectionMap with concurrentMap from hashMap. (#4774) Thread [Connect-Scheduler-Check-Timer] fail to iterate the connectionMap , because other threads will modify the connectionMap at the same time. Fe's connection which is timed out can't be released because of thread [Connect-Scheduler-Check-Timer] not working. --- .../src/main/java/org/apache/doris/qe/ConnectScheduler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectScheduler.java b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectScheduler.java index 411ef729e6..e7a034e379 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectScheduler.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectScheduler.java @@ -46,7 +46,7 @@ public class ConnectScheduler { private int maxConnections; private int numberConnection; private AtomicInteger nextConnectionId; - private Map connectionMap = Maps.newHashMap(); + private Map connectionMap = Maps.newConcurrentMap(); private Map connByUser = Maps.newHashMap(); private ExecutorService executor = ThreadPoolManager.newDaemonCacheThreadPool(Config.max_connection_scheduler_threads_num, "connect-scheduler-pool", true);