myxce/.wolf/bugs/bug-1725.md
2026-10-03 14:51:27 +00:00

2.7 KiB

id status status_updated status_note component severity timestamp last_seen occurrences files tags related fix_commits legacy
bug-1725 fixed 2026-10-03 xceadmin unknown 2026-08-28T00:00:00Z 2026-10-03T07:45:06Z 2
src/xceadmin/tests/test_e2e_live_ha_push.py
xceadmin
config-push
redirect
OPCode_upgradeConfig
stale-test
design-doc-sync
roadmap-sync
race-condition
config_activate_committed
found-live
root-caused
live-verified
bug-1724
bug-1700
bug-1701
bug-1468
362098b1
true

bug-1725: After bug-1724's fix made…

Description

After bug-1724's fix made test_live_config_push_against_standby_returns_standby_rejection_not_redirect actually execute (previously always skipped), it FAILED for real: pushing config to a standby now redirects to the primary and succeeds, contradicting the test's own hard-coded 'standby flatly rejects, no redirect' assertions. Separately, the rewritten success-path test's reused _assert_primary_committed() helper intermittently failed its 4th assertion ('config activated from committed marker tag=...' not found in the primary's log immediately after the push CLI returned success).

Environment

Not recorded (migrated from buglog.json).

Reproduction

Not recorded (migrated from buglog.json).

Root cause

Corrected 2026-10-03. Part (1) of the original entry (stale standby-redirect assertion) was fixed earlier. Part (2), the recurring flake: the controller replies to the push before two of the lines the tests assert are logged — "Config upgraded to tag=" is logged right after xce_reply() (config_repl.c ~1865-1873) and "config activated from committed marker" comes from config_activate_committed() (config_repl.c ~376) on the asynchronous WAL apply pump. test_e2e_live_push.py read the log once with no polling (the 2026-10-03 recurrence), and the HA helper polled only for the activation line, not "Config upgraded".

Fix

Shared assert_primary_committed() in src/xceadmin/tests/_live_e2e_common.py polls (5 s) until the commit, upgrade and activation lines are all present, then asserts each; both live tests use it. Fix commit 362098b1.

Verification

  • Test: helper unit tests in src/xceadmin/tests/test_live_e2e_common.py (lines logged after the reply are waited for; missing activation line fails; missing "Config upgraded" line fails) — the old single-read and activation-only patterns fail deterministically when the late lines are written 0.3 s after the read; GREEN after. Live tests looped 95 runs (incl. heavy CPU load) with 0 bug-1725 failures.
  • Suites: xceadmin 373 passed, 2026-10-03.
  • Live: n/a

References

  • Related: bug-1724, bug-1700, bug-1701, bug-1468