forked from lei.chen/myxce
fix(xce-test-ha): bug-1420 harness jobid collision + bug-1419 regression coverage
xce_test's cmd_jsub hardcoded idgen(&idctx, 0, 0, ...) (clusterId=apiserverId=0), and run-ha-soak.sh's submit_jobs() spawns a fresh xce_test process per retry attempt, resetting idgen's static sequence counter each time. Two unrelated job submissions from separate process launches landing in the same wall-clock second collided on an identical jobid, surfacing as a spurious APPLY_DIVERGENT fence in chaotic soak that was initially misattributed to bug-1419's controller-side dedup logic. Confirmed not a production risk: apiserver's GenerateJobID holds one process-lifetime idgen_ctx_t via sync.Once, and each deployed instance has its own distinct apiserverId, so config.h's jobid bit layout already partitions the production namespace. Fixed by folding getpid() into the harness's apiserverId so cross-process collisions become structurally impossible there too. Also adds test_jobsubmit_resubmit_after_full_resolution_rejected_no_second_job to test_commit_barrier_reply.c, proving the post-resolution dedup window (retry arriving after commit+apply+reply+release) is airtight, complementing the existing before-resolution test -- both known bug-1419 dedup windows are now provably race-free, confirming those fixes were never the cause of this soak failure. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VgT3n4vTv4ZjCuCTmzed1F
This commit is contained in:
parent
0eb105431b
commit
1b6041acef
3 changed files with 137 additions and 4 deletions
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue