Synchronize sandbox allocation regression without request timing races #682
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/sandbox-allocation-test-synchronization"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The required sandbox suite on combined main failed in
slow_executor_does_not_serialize_another_allocationbefore it even attempted the fast allocation: the mock had not received the first request within one second. That includes durable allocation writes and HTTP scheduling, which have no one-second latency contract.The regression now holds the slow executor response behind a semaphore. It starts the second allocation only after the first reaches the mock, asserts the fast allocation is Ready while the slow one is still Attaching, then opens the gate and verifies the slow allocation also completes. A single 30s watchdog detects a deadlock; correctness comes from the gate ordering rather than relative request/sleep timing. Production code is unchanged.
Diagnosis and provenance
Head:
df1b49751f114a8e19bdcfc89b3dc887a902ad14. Base:eb4c13cdfd9c6107b94de8e9b65bfdc122a49310(combined main with #673, ACP fix and #674–#678 via #681). Solstice request6fd11ab4-b385-4c6f-a9a9-48fdd4cafa48, categorystep:verify-independent-daemon-profiles-and-platform-contracts, records sandbox.rs:362Elapsed(()); suite 5 passed/1 failed, exit101. Main run 4377.Authoritative platform category logs passed on all reviewed PR head refs: #675 (
80464684, 6 sandbox tests), #676 (c8a1ea49), #677 (77cf2afa), #678 (0cb59f25) and #681 (ab01bab3, 2 sandbox tests each before the #675 integration). The slow test body is byte-identical at all these heads and failing main. Main's complete sandbox production file is byte-identical to #675; the tested path never calls release-proof or process-capture GC. Every sandbox test has its own service instance/database. The unchanged combined-main sandbox suite also passed locally. These observations identify a timing-sensitive test; no release-proof/GC interaction or production deadlock was demonstrated. The exact resource/scheduler delay of the CI miss was not traced.Validation
cargo test --locked -p akh-session-services --features sandbox --test sandbox -j 4 -- --nocapturewith dev/test debug0 and incremental0. This includes all six release-proof/retention/concurrency sandbox cases, not only the failing test.Local receipts and exact-head comparisons are retained under
analysis-anima-3w/ci4377/; source/log hashes bind the results. rustfmt and diff checks pass. The build guard stayed above 38.42 GiB free (31 GiB minimum required); own finished target was verified without open files and deleted, leaving 41.45 GiB free. Other targets were untouched. No PR merge, deployment, live recovery or CI rerun.Exact-head CI is pending in run4378; no new Solstice success receipt has been claimed.