mwkang opened a new issue, #8799:
URL: https://github.com/apache/storm/issues/8799

   ## Description
   
   `ReportWorkerHeartbeats` filters stale local heartbeats before reporting 
them to Nimbus using only the global `supervisor.worker.timeout.secs`. But the 
actual worker-kill authority, `Slot.getHbTimeoutMs()`, uses 
`max(topology.worker.timeout.secs, supervisor.worker.timeout.secs)`.
   
   So for a topology that raised `topology.worker.timeout.secs` above the 
global value, a slow-but-alive worker (GC pause, safepoint, IO stall) is 
dropped from the heartbeat report one round *before* `Slot` would consider it 
dead — while `Slot` still keeps it running.
   
   The stale-heartbeat filter was added in #8789.
   
   ## Expected
   
   The reporting filter uses the same effective timeout as 
`Slot.getHbTimeoutMs()`, honoring a per-topology `topology.worker.timeout.secs` 
override (bounded by `worker.max.timeout.secs`).
   
   ## Actual
   
   Only the global `supervisor.worker.timeout.secs` is applied, so heartbeats 
from a longer-timeout topology can be omitted while the worker is still within 
its effective timeout.
   
   ## Severity
   
   Low. Healthy workers heartbeat well within any timeout, and the 
orphaned/dead workers this filter targets are far past every timeout. Only 
topologies that intentionally raise `topology.worker.timeout.secs` to tolerate 
stalls are affected.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to