Github user d2r commented on a diff in the pull request:
https://github.com/apache/incubator-storm/pull/194#discussion_r15228640
--- Diff: storm-core/src/clj/backtype/storm/daemon/supervisor.clj ---
@@ -67,12 +67,19 @@
[(Integer. port) (LocalAssignment. storm-id (doall
executors))]
))))
-
(defn- read-assignments
"Returns map from port to struct containing :storm-id and :executors"
- [assignments-snapshot assignment-id]
- (->> (dofor [sid (keys assignments-snapshot)] (read-my-executors
assignments-snapshot sid assignment-id))
- (apply merge-with (fn [& ignored] (throw-runtime "Should not have
multiple topologies assigned to one port")))))
+ ([assignments-snapshot assignment-id]
+ (->> (dofor [sid (keys assignments-snapshot)] (read-my-executors
assignments-snapshot sid assignment-id))
+ (apply merge-with (fn [& ignored] (throw-runtime "Should not
have multiple topologies assigned to one port")))))
+ ([assignments-snapshot assignment-id existing-assignment retries]
+ (try (let [assignments (read-assignments assignments-snapshot
assignment-id)]
+ (reset! retries 0)
+ assignments)
+ (catch RuntimeException e
+ (if (> @retries 2) (throw e) (swap! retries inc))
+ (log-warn (.getMessage e))
--- End diff --
It would be nice to include some text to the effect that we are retrying "1
of 3" times in addition to this stack trace, just to avoid confusing this with
a more serious error. But this is very, very minor.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---