Dehydrated-device e2e races the D95 auto-run: manual manageDehydratedDevice() returns while the standing is still Claiming (CI #422) #173
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
CI #422 (
9528fe3, phase 2):DehydratedDeviceEndToEndTest.fresh_login_reads_the_gap_via_the_dehydrated_devicefailed withand left a fresh dehydrated device: Claimingat the assertion right aftermanageDehydratedDevice()returned ≥ 1 healed events.Since D95 (#149)
unlockSecretStoragetriggers the automatic dehydration run as soon as it returns when the loop is up; the test then calls the manualmanageDehydratedDevice()— two runs of the same flow race. The manual one returned its healed count while the automatic one still held the standing atClaiming.Acceptance (§10.4.7, D95): concurrent runs are serialized in the engine (one claim-and-replace at a time, a second concurrent trigger coalesces into a no-op or waits), and the e2e waits for
Activewith a bound instead of asserting it at an instant; the CR-12 healing assertion rides the awaited healed event, not the manual call's return value.