summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Marius Venstad <jonmv@users.noreply.github.com>2022-01-25 07:54:34 +0100
committerGitHub <noreply@github.com>2022-01-25 07:54:34 +0100
commita2873ebedbbdb9daacdd87517ea3b9fa21794d26 (patch)
tree346791c76cd981a806f884b150eae2618f45c7b7
parent7c57db8215a3a08595c4fa8cf3e0bc8dcb3405f9 (diff)
parent565a260840b8d284ac68f973adfc040237115c67 (diff)
Merge pull request #20919 from vespa-engine/balder/avoid-deadlock-caused-by-bound-q
We must ensure that we do not end up with a rejected execution that c…
-rw-r--r--messagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCNetwork.java8
1 files changed, 4 insertions, 4 deletions
diff --git a/messagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCNetwork.java b/messagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCNetwork.java
index 5ff9a4b0313..c457a703ecc 100644
--- a/messagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCNetwork.java
+++ b/messagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCNetwork.java
@@ -38,7 +38,7 @@ import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import java.util.concurrent.ExecutorService;
-import java.util.concurrent.SynchronousQueue;
+import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -53,7 +53,7 @@ import java.util.stream.Collectors;
*/
public class RPCNetwork implements Network, MethodHandler {
- private static Logger log = Logger.getLogger(RPCNetwork.class.getName());
+ private static final Logger log = Logger.getLogger(RPCNetwork.class.getName());
private final AtomicBoolean destroyed = new AtomicBoolean(false);
private final Identity identity;
@@ -69,8 +69,8 @@ public class RPCNetwork implements Network, MethodHandler {
private final LinkedHashMap<String, Route> lruRouteMap = new LinkedHashMap<>(10000, 0.5f, true);
private final ExecutorService executor =
new ThreadPoolExecutor(getNumThreads(), getNumThreads(), 0L, TimeUnit.SECONDS,
- new SynchronousQueue<>(false),
- ThreadFactoryFactory.getDaemonThreadFactory("mbus.net"), new ThreadPoolExecutor.CallerRunsPolicy());
+ new LinkedBlockingQueue<>(),
+ ThreadFactoryFactory.getDaemonThreadFactory("mbus.net"));
private static int getNumThreads() {
return Math.max(2, Runtime.getRuntime().availableProcessors()/2);