test(push): distinguish batch transfer failures from lifecycle errors - #51
Conversation
|
Bounded investigation checkpoint: HEAD 4e54088 passed both environments in run 34242677189. Eight consecutive partial/all-failure pairs per environment, no lifecycle resets, exact status assertions; no failing boundary observed. This exhausts the current fixed repetition budget, not proof of root cause or authorization to merge #47. Next work must improve causal observability or construct a controlled interleaving rather than raise repetition counts. Production code remains unchanged. The 90-second check is between rounds; existing per-transfer and job limits remain the hard bounds. |
Post-#52 validation and self-reviewBase: d776297. Updated through a normal merge; HEAD: 0fb9a70. CI: https://github.com/LucaLin233/Linux/actions/runs/34249483414 — both Ubuntu 24.04 and Debian 13 passed full=true, 10 suites each. Both environments completed all eight consecutive partial/all-failure rounds with exact ordinary status 1 and clear lifecycle/error flags. No barrier reset or retry-to-green was introduced. Main post-#52 run 34248695868 also passed both full suites. Self-review: complete base-relative diff remains two files, +39/-2, tests and investigation documentation only. git diff --check and bash -n passed. Production call stacks remain unchanged. The 90-second probe budget is checked between rounds, not a hard timeout. Existing per-job timeout remains 15 minutes; Ubuntu completed near that limit. The original main failure in run 34237080747 remains unexplained. The logs establish that the partial batch stopped before scheduling good2, but do not identify the first internal failing boundary. These green results do not establish a causal fix, nor a connection between that batch failure and the HUP parser defect. No speculative production change is justified. This PR is suitable only as a diagnostic/assertion improvement, not as a bug-fix claim or permission to unblock PR #47. Merge remains subject to explicit user confirmation. Rollback: revert the eventual diagnostic squash commit through a separate PR; no production behavior or data migration is involved. |
Evidence
Main run 34237080747 failed Debian: partial-server case returned lifecycle failure but assert_fail accepted it; following batch hit stale barrier and failed accounting. Root cause not established.
Scope
Only tests/test-push.sh. Based on main 6e24bcb. Require exact ordinary failure status 1 and false lifecycle/accounting flags; require both unrelated successful servers complete. On failure report only Bash version, status and lifecycle maps, no credential variables. No production code changes, state resets, relaxed checks, retries or timeout increases.
Validation
Existing selection automatically runs test-push.sh. CI pending. No local behavioral tests or production execution, no credentials supplied to tests. Keep #47 blocked regardless of a non-reproducing run. Follow existing continuous investigation authorization; merge still requires explicit approval.
Rollback
Revert this test change. A passing diagnostic run does not prove root cause fixed.