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]
