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

    https://github.com/apache/storm/pull/2433#discussion_r173215759
  
    --- Diff: storm-client/src/jvm/org/apache/storm/daemon/worker/Worker.java 
---
    @@ -392,6 +401,30 @@ public void establishLogSettingCallback() {
             workerState.stormClusterState.topologyLogConfig(topologyId, 
this::checkLogConfigChanged);
         }
     
    +    /**
    +     * Send a heartbeat to local supervisor first to check if supervisor 
is ok for heartbeating.
    +     */
    +    private void heartbeatToMasterIfLocalbeatFail(LSWorkerHeartbeat 
lsWorkerHeartbeat) {
    +        if (ConfigUtils.isLocalMode(this.conf)) {
    +            return;
    +        }
    +        //in distributed mode, send heartbeat directly to master if local 
supervisor goes down
    +        SupervisorWorkerHeartbeat workerHeartbeat = new 
SupervisorWorkerHeartbeat(lsWorkerHeartbeat.get_topology_id(),
    +                lsWorkerHeartbeat.get_executors(), 
lsWorkerHeartbeat.get_time_secs());
    +        try (SupervisorClient client = 
SupervisorClient.getConfiguredClient(conf, Utils.hostname(), supervisorPort)){
    +            
client.getClient().sendSupervisorWorkerHeartbeat(workerHeartbeat);
    +        } catch (Throwable tr1) {
    +            //if any error/exception thrown, report directly to nimbus.
    +            LOG.warn("Exception when send heartbeat to local supervisor", 
tr1.getMessage());
    +            try (NimbusClient nimbusClient = 
NimbusClient.getConfiguredClient(conf)){
    +                
nimbusClient.getClient().sendSupervisorWorkerHeartbeat(workerHeartbeat);
    +            } catch (Throwable tr2) {
    --- End diff --
    
    Here too on Exception vs Throwable.


---

Reply via email to