You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@storm.apache.org by bo...@apache.org on 2015/03/11 21:10:14 UTC

[3/6] storm git commit: STORM-657:make the shutdown-worker sleep time before kill -9 configurable

STORM-657:make the shutdown-worker sleep time before kill -9 configurable


Project: http://git-wip-us.apache.org/repos/asf/storm/repo
Commit: http://git-wip-us.apache.org/repos/asf/storm/commit/b1c993b2
Tree: http://git-wip-us.apache.org/repos/asf/storm/tree/b1c993b2
Diff: http://git-wip-us.apache.org/repos/asf/storm/diff/b1c993b2

Branch: refs/heads/master
Commit: b1c993b288385f637fa26b840a11532c7b60a6c7
Parents: d8c98cb
Author: caofangkun <ca...@gmail.com>
Authored: Mon Feb 9 13:23:23 2015 +0800
Committer: caofangkun <ca...@gmail.com>
Committed: Mon Feb 9 13:23:23 2015 +0800

----------------------------------------------------------------------
 conf/defaults.yaml                                      | 2 ++
 storm-core/src/clj/backtype/storm/daemon/supervisor.clj | 5 ++++-
 storm-core/src/jvm/backtype/storm/Config.java           | 6 ++++++
 3 files changed, 12 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/storm/blob/b1c993b2/conf/defaults.yaml
----------------------------------------------------------------------
diff --git a/conf/defaults.yaml b/conf/defaults.yaml
index 35d20ff..b5de229 100644
--- a/conf/defaults.yaml
+++ b/conf/defaults.yaml
@@ -117,6 +117,8 @@ supervisor.run.worker.as.user: false
 supervisor.worker.start.timeout.secs: 120
 #how long between heartbeats until supervisor considers that worker dead and tries to restart it
 supervisor.worker.timeout.secs: 30
+#how many seconds to sleep for before shutting down threads on worker
+supervisor.worker.shutdown.sleep.secs: 1
 #how frequently the supervisor checks on the status of the processes it's monitoring and restarts if necessary
 supervisor.monitor.frequency.secs: 3
 #how frequently the supervisor heartbeats to the cluster state (for nimbus)

http://git-wip-us.apache.org/repos/asf/storm/blob/b1c993b2/storm-core/src/clj/backtype/storm/daemon/supervisor.clj
----------------------------------------------------------------------
diff --git a/storm-core/src/clj/backtype/storm/daemon/supervisor.clj b/storm-core/src/clj/backtype/storm/daemon/supervisor.clj
index a5d5aef..7764310 100644
--- a/storm-core/src/clj/backtype/storm/daemon/supervisor.clj
+++ b/storm-core/src/clj/backtype/storm/daemon/supervisor.clj
@@ -249,6 +249,7 @@
   (let [conf (:conf supervisor)
         pids (read-dir-contents (worker-pids-root conf id))
         thread-pid (@(:worker-thread-pids-atom supervisor) id)
+        shutdown-sleep-secs (conf SUPERVISOR-WORKER-SHUTDOWN-SLEEP-SECS)
         as-user (conf SUPERVISOR-RUN-WORKER-AS-USER)
         user (get-worker-user conf id)]
     (when thread-pid
@@ -257,7 +258,9 @@
       (if as-user
         (worker-launcher-and-wait conf user ["signal" pid "9"] :log-prefix (str "kill -15 " pid))
         (kill-process-with-sig-term pid)))
-    (if-not (empty? pids) (sleep-secs 1)) ;; allow 1 second for execution of cleanup threads on worker.
+    (if-not (empty? pids) (do 
+                            (log-message "Sleep " shutdown-sleep-secs " seconds for execution of cleanup threads on worker.")
+                            (sleep-secs shutdown-sleep-secs)))
     (doseq [pid pids]
       (if as-user
         (worker-launcher-and-wait conf user ["signal" pid "9"] :log-prefix (str "kill -9 " pid))

http://git-wip-us.apache.org/repos/asf/storm/blob/b1c993b2/storm-core/src/jvm/backtype/storm/Config.java
----------------------------------------------------------------------
diff --git a/storm-core/src/jvm/backtype/storm/Config.java b/storm-core/src/jvm/backtype/storm/Config.java
index 73a1976..2462d4e 100644
--- a/storm-core/src/jvm/backtype/storm/Config.java
+++ b/storm-core/src/jvm/backtype/storm/Config.java
@@ -734,6 +734,12 @@ public class Config extends HashMap<String, Object> {
     public static final Object SUPERVISOR_WORKER_TIMEOUT_SECS_SCHEMA = ConfigValidation.IntegerValidator;
 
     /**
+     * How many seconds to sleep for before shutting down threads on worker
+     */
+    public static final String SUPERVISOR_WORKER_SHUTDOWN_SLEEP_SECS = "supervisor.worker.shutdown.sleep.secs";
+    public static final Object SUPERVISOR_WORKER_SHUTDOWN_SLEEP_SECS_SCHEMA = ConfigValidation.IntegerValidator;
+
+    /**
      * How long a worker can go without heartbeating during the initial launch before
      * the supervisor tries to restart the worker process. This value override
      * supervisor.worker.timeout.secs during launch because there is additional