This is an automated email from the ASF dual-hosted git repository.

zaynt4606 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/celeborn.git


The following commit(s) were added to refs/heads/main by this push:
     new 90954f7236 [CELEBORN-2399] Fix HA worker heartbeat using 
stateStartTime instead of actual time
90954f7236 is described below

commit 90954f7236c8f7a44ae9a583af12ea3c76d49616
Author: ewoodbury <[email protected]>
AuthorDate: Mon Aug 10 16:53:25 2026 +0800

    [CELEBORN-2399] Fix HA worker heartbeat using stateStartTime instead of 
actual time
    
    ### What changes were proposed in this pull request?
    
    In HA `MetaHandler` for `WorkerHeartbeat`, pass 
`request.getWorkerHeartbeatRequest().getTime()` into 
`updateWorkerHeartbeatMeta` instead of `getWorkerStatus().getStateStartTime()`.
    
    ### Why are the changes needed?
    
    `HAMasterMetaManager` correctly sets `.setTime(...)` when submitting the 
Ratis request. After CELEBORN-1984, the apply path reads the wrong field.
    
    `stateStartTime` is fixed when the worker entered Normal, so 
`lastHeartbeat` never advances. Once `now > stateStartTime + 
workerHeartbeatTimeout`, the HA master treats workers as lost despite regular 
heartbeats.
    
    Non-HA (`SingleMasterMetaManager`) is unaffected. `branch-0.6` still uses 
`getTime()` and is unaffected. Affects `main` / `branch-0.7` (including 
v0.7.0-rc0).
    
    ### Does this PR resolve a correctness bug?
    
    - [ ] Yes
    
    ### Does this PR introduce _any_ user-facing change?
    
    - [ ] Yes
    
    ### How was this patch tested?
    
    Root-cause analysis of submit path (`HAMasterMetaManager` sets `.setTime`) 
vs apply path (`MetaHandler` was reading `stateStartTime`). Verified the same 
code path on `branch-0.6` already uses `getTime()`. Observed in HA testing on 
v0.7 where workers were repeatedly marked lost after the heartbeat timeout.
    
    (Should be cherry-picked to `branch-0.7` for 0.7.0 release)
    
    Closes #3777 from ewoodbury/fix-ha-worker-heartbeat-time.
    
    Authored-by: ewoodbury <[email protected]>
    Signed-off-by: zhengtao <[email protected]>
    
    AI-Contributed/Feature: 0/2
    AI-Contributed/UT: 0/0
---
 .../celeborn/service/deploy/master/clustermeta/ha/MetaHandler.java      | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git 
a/master/src/main/java/org/apache/celeborn/service/deploy/master/clustermeta/ha/MetaHandler.java
 
b/master/src/main/java/org/apache/celeborn/service/deploy/master/clustermeta/ha/MetaHandler.java
index 3c8e8fe0d0..86097117e8 100644
--- 
a/master/src/main/java/org/apache/celeborn/service/deploy/master/clustermeta/ha/MetaHandler.java
+++ 
b/master/src/main/java/org/apache/celeborn/service/deploy/master/clustermeta/ha/MetaHandler.java
@@ -243,7 +243,7 @@ public class MetaHandler {
               fetchPort,
               replicatePort,
               diskInfos,
-              
request.getWorkerHeartbeatRequest().getWorkerStatus().getStateStartTime(),
+              request.getWorkerHeartbeatRequest().getTime(),
               workerStatus,
               highWorkload);
           break;

Reply via email to