Repository: incubator-ratis Updated Branches: refs/heads/master a82cd7b12 -> 9b2d7b65c
RATIS-348. TimeoutScheduler and SlidingWindow should use daemon threads. Contributed by Tsz Wo Nicholas Sze. Project: http://git-wip-us.apache.org/repos/asf/incubator-ratis/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ratis/commit/9b2d7b65 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ratis/tree/9b2d7b65 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ratis/diff/9b2d7b65 Branch: refs/heads/master Commit: 9b2d7b65cf271e2b3b3616d427edf2688586a56c Parents: a82cd7b Author: Jitendra Pandey <[email protected]> Authored: Thu Oct 11 12:14:43 2018 -0700 Committer: Jitendra Pandey <[email protected]> Committed: Thu Oct 11 12:14:43 2018 -0700 ---------------------------------------------------------------------- ratis-common/src/main/java/org/apache/ratis/util/JavaUtils.java | 2 +- .../src/main/java/org/apache/ratis/util/SlidingWindow.java | 3 ++- .../src/main/java/org/apache/ratis/util/TimeoutScheduler.java | 2 +- ratis-server/src/test/java/org/apache/ratis/MiniRaftCluster.java | 2 +- ratis-server/src/test/java/org/apache/ratis/RaftAsyncTests.java | 3 +-- 5 files changed, 6 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/9b2d7b65/ratis-common/src/main/java/org/apache/ratis/util/JavaUtils.java ---------------------------------------------------------------------- diff --git a/ratis-common/src/main/java/org/apache/ratis/util/JavaUtils.java b/ratis-common/src/main/java/org/apache/ratis/util/JavaUtils.java index dd8eb39..ceca8b8 100644 --- a/ratis-common/src/main/java/org/apache/ratis/util/JavaUtils.java +++ b/ratis-common/src/main/java/org/apache/ratis/util/JavaUtils.java @@ -186,7 +186,7 @@ public interface JavaUtils { } static Timer runRepeatedly(Runnable runnable, long delay, long period, TimeUnit unit) { - final Timer timer = new Timer(); + final Timer timer = new Timer(true); timer.schedule(new TimerTask() { @Override public void run() { http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/9b2d7b65/ratis-common/src/main/java/org/apache/ratis/util/SlidingWindow.java ---------------------------------------------------------------------- diff --git a/ratis-common/src/main/java/org/apache/ratis/util/SlidingWindow.java b/ratis-common/src/main/java/org/apache/ratis/util/SlidingWindow.java index 6ded6f7..ca622dd 100644 --- a/ratis-common/src/main/java/org/apache/ratis/util/SlidingWindow.java +++ b/ratis-common/src/main/java/org/apache/ratis/util/SlidingWindow.java @@ -46,13 +46,14 @@ public interface SlidingWindow { /** A seqNum-to-request map, sorted by seqNum. */ class RequestMap<REQUEST extends Request<REPLY>, REPLY> implements Iterable<REQUEST> { + static boolean LOG_REPEATEDLY = false; private final Object name; /** Request map: seqNum -> request */ private final SortedMap<Long, REQUEST> requests = new TreeMap<>(); RequestMap(Object name) { this.name = name; - if (LOG.isDebugEnabled()) { + if (LOG_REPEATEDLY && LOG.isDebugEnabled()) { JavaUtils.runRepeatedly(() -> log(), 5, 10, TimeUnit.SECONDS); } } http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/9b2d7b65/ratis-common/src/main/java/org/apache/ratis/util/TimeoutScheduler.java ---------------------------------------------------------------------- diff --git a/ratis-common/src/main/java/org/apache/ratis/util/TimeoutScheduler.java b/ratis-common/src/main/java/org/apache/ratis/util/TimeoutScheduler.java index 7007a53..62e74e5 100644 --- a/ratis-common/src/main/java/org/apache/ratis/util/TimeoutScheduler.java +++ b/ratis-common/src/main/java/org/apache/ratis/util/TimeoutScheduler.java @@ -94,7 +94,7 @@ public final class TimeoutScheduler { if (scheduler == null) { Preconditions.assertTrue(numTasks == 0); LOG.debug("Initialize scheduler"); - scheduler = Executors.newScheduledThreadPool(numThreads); + scheduler = Executors.newScheduledThreadPool(numThreads, Daemon::new); } numTasks++; final int sid = scheduleID++; http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/9b2d7b65/ratis-server/src/test/java/org/apache/ratis/MiniRaftCluster.java ---------------------------------------------------------------------- diff --git a/ratis-server/src/test/java/org/apache/ratis/MiniRaftCluster.java b/ratis-server/src/test/java/org/apache/ratis/MiniRaftCluster.java index da81fc3..921a7ce 100644 --- a/ratis-server/src/test/java/org/apache/ratis/MiniRaftCluster.java +++ b/ratis-server/src/test/java/org/apache/ratis/MiniRaftCluster.java @@ -576,7 +576,7 @@ public abstract class MiniRaftCluster implements Closeable { LOG.info("************************************************************** "); LOG.info(printServers()); - final ExecutorService executor = Executors.newFixedThreadPool(servers.size()); + final ExecutorService executor = Executors.newFixedThreadPool(servers.size(), Daemon::new); try { getServers().forEach(proxy -> executor.submit(proxy::close)); // just wait for a few seconds http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/9b2d7b65/ratis-server/src/test/java/org/apache/ratis/RaftAsyncTests.java ---------------------------------------------------------------------- diff --git a/ratis-server/src/test/java/org/apache/ratis/RaftAsyncTests.java b/ratis-server/src/test/java/org/apache/ratis/RaftAsyncTests.java index 26213e2..7e7c559 100644 --- a/ratis-server/src/test/java/org/apache/ratis/RaftAsyncTests.java +++ b/ratis-server/src/test/java/org/apache/ratis/RaftAsyncTests.java @@ -116,13 +116,12 @@ public abstract class RaftAsyncTests<CLUSTER extends MiniRaftCluster> extends Ba } Assert.assertTrue(blockedRequestsCount.get() == 0); - ExecutorService threadPool = Executors.newFixedThreadPool(1); futures[numMessages] = CompletableFuture.supplyAsync(() -> { blockedRequestsCount.incrementAndGet(); client.sendAsync(new RaftTestUtil.SimpleMessage("n1")); blockedRequestsCount.decrementAndGet(); return null; - }, threadPool); + }); //Allow the last msg to be sent while (blockedRequestsCount.get() != 1) {
