Repository: storm
Updated Branches:
  refs/heads/1.0.x-branch 38e4c64f2 -> 3a4773be8
  refs/heads/1.x-branch ba9f0e038 -> 0c4fbacbd
  refs/heads/master 03e6b8419 -> c73c17a3e


Fixing pacemaker delete-path bug.


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

Branch: refs/heads/1.x-branch
Commit: ebed1c8b01397b09f4083e66f574a25f9b7c585d
Parents: ab3ed3e
Author: Kyle Nusbaum <[email protected]>
Authored: Tue Feb 21 14:18:31 2017 -0600
Committer: Kyle Nusbaum <[email protected]>
Committed: Tue Feb 21 16:02:33 2017 -0600

----------------------------------------------------------------------
 .../src/clj/org/apache/storm/pacemaker/pacemaker.clj |  2 +-
 .../storm/pacemaker/pacemaker_state_factory.clj      | 15 ++++++++++++---
 2 files changed, 13 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/storm/blob/ebed1c8b/storm-core/src/clj/org/apache/storm/pacemaker/pacemaker.clj
----------------------------------------------------------------------
diff --git a/storm-core/src/clj/org/apache/storm/pacemaker/pacemaker.clj 
b/storm-core/src/clj/org/apache/storm/pacemaker/pacemaker.clj
index 70313e4..2b26a8a 100644
--- a/storm-core/src/clj/org/apache/storm/pacemaker/pacemaker.clj
+++ b/storm-core/src/clj/org/apache/storm/pacemaker/pacemaker.clj
@@ -160,7 +160,7 @@
 (defn delete-path [^String path heartbeats]
   (let [prefix (if (= \/ (last path)) path (str path "/"))]
     (doseq [k (.keySet heartbeats)
-            :when (= (.indexOf k prefix) 0)]
+            :when (= (.indexOf (str k "/") prefix) 0)]
       (delete-pulse-id k heartbeats)))
   (HBMessage. HBServerMessageType/DELETE_PATH_RESPONSE nil))
 

http://git-wip-us.apache.org/repos/asf/storm/blob/ebed1c8b/storm-core/src/clj/org/apache/storm/pacemaker/pacemaker_state_factory.clj
----------------------------------------------------------------------
diff --git 
a/storm-core/src/clj/org/apache/storm/pacemaker/pacemaker_state_factory.clj 
b/storm-core/src/clj/org/apache/storm/pacemaker/pacemaker_state_factory.clj
index 2bbeda4..3889dcf 100644
--- a/storm-core/src/clj/org/apache/storm/pacemaker/pacemaker_state_factory.clj
+++ b/storm-core/src/clj/org/apache/storm/pacemaker/pacemaker_state_factory.clj
@@ -200,9 +200,18 @@
         (pacemaker-retry-on-exception
           max-retries
           "delete-worker-hb"
-          #(delete-worker-hb path (get-pacemaker-write-client conf servers 
pacemaker-client-pool))
-          (fn delete_worker_hb_error [err]
-            (shutdown-rotate servers pacemaker-client-pool))))
+          #(let [pacemaker-client-pool (makeClientPool conf 
pacemaker-client-pool servers)
+                 results (map (fn [[host client]]
+                                (try
+                                  (if (is-connection-ready client)
+                                    (delete-worker-hb path client)
+                                    :error)
+                                  (catch Exception e
+                                    :error)))
+                              @pacemaker-client-pool)]
+             (when (every? (fn [result] (= :error result)) results)
+               (throw (HBExecutionException. "Cannot connect to any pacemaker 
servers"))))
+          nil))
 
       ;; aggregating worker heartbeat details
       (get_worker_hb [this path watch?]

Reply via email to