From e924284ee026790bf60a0254d4bcdcf822a665ba Mon Sep 17 00:00:00 2001 From: Vlad Rozov Date: Wed, 14 Sep 2016 22:06:36 -0700 Subject: [PATCH] APEXCORE-535 - Node.teardown() should try to gracefully shutdown exectutor service --- .../java/com/datatorrent/stram/engine/Node.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/engine/src/main/java/com/datatorrent/stram/engine/Node.java b/engine/src/main/java/com/datatorrent/stram/engine/Node.java index 0b56bcee64..4a5cbdeb2e 100644 --- a/engine/src/main/java/com/datatorrent/stram/engine/Node.java +++ b/engine/src/main/java/com/datatorrent/stram/engine/Node.java @@ -43,6 +43,7 @@ import java.util.concurrent.Executors; import java.util.concurrent.FutureTask; import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.TimeUnit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -209,7 +210,17 @@ public void teardown() } if (executorService != null) { - executorService.shutdownNow(); + executorService.shutdown(); + boolean terminated = false; + try { + terminated = executorService.awaitTermination(100, TimeUnit.MILLISECONDS); + } catch (InterruptedException e) { + logger.debug("Wait for graceful executor service {} shutdown interrupted for node {}", executorService, this, e); + } + if (!terminated) { + logger.warn("Shutting down executor service {} for node {}", executorService, this); + executorService.shutdownNow(); + } } operator.teardown(); }