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?]
