Github user revans2 commented on a diff in the pull request:

    https://github.com/apache/storm/pull/2319#discussion_r138074478
  
    --- Diff: storm-core/src/clj/org/apache/storm/daemon/supervisor.clj ---
    @@ -758,6 +752,35 @@
           (catch Exception e
             (log-error e "Error running profiler actions, will retry again 
later")))))
     
    +(defn assigned-assignments-to-local!
    +  [^SupervisorAssignments supervisorAssignments supervisor]
    +  (when (not-nil? supervisorAssignments)
    +    (let [serialized-assignments (into {} (for [[tid amt] 
(.get_storm_assignment supervisorAssignments)]
    +                                            {tid (Utils/serialize amt)}))]
    +      (.sync-remote-assignments! (:storm-cluster-state supervisor) 
serialized-assignments))))
    +
    +;; Supervisor should be told that who is leader.
    +;; Fetch leader info each time before request node assignment.
    +;; TODO: get leader address from zk directly.
    +(defn assignments-from-master
    +  [conf supervisor]
    +  (let [client (atom nil)]
    +    (try
    +      (let [master-client (NimbusClient/getConfiguredClientAs conf nil)
    +            _ (reset! client master-client) ;; keep a refence so we can 
close it
    +            supervisor-assignments (.getSupervisorAssignments (.getClient 
master-client) (:my-hostname supervisor))]
    +        (assigned-assignments-to-local! supervisor-assignments supervisor))
    +      (catch Throwable e
    --- End diff --
    
    Lets just catch Exception and not Throwable.  There are way too many really 
bad things that are Errors that we don't want to ignore.


---

Reply via email to