Dehydrated-device e2e races the D95 auto-run: manual manageDehydratedDevice() returns while the standing is still Claiming (CI #422) #173

Closed
opened 2026-09-11 21:19:28 +02:00 by thecrealm · 0 comments
Owner

CI #422 (9528fe3, phase 2): DehydratedDeviceEndToEndTest.fresh_login_reads_the_gap_via_the_dehydrated_device failed with and left a fresh dehydrated device: Claiming at the assertion right after manageDehydratedDevice() returned ≥ 1 healed events.

Since D95 (#149) unlockSecretStorage triggers the automatic dehydration run as soon as it returns when the loop is up; the test then calls the manual manageDehydratedDevice() — two runs of the same flow race. The manual one returned its healed count while the automatic one still held the standing at Claiming.

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 Active with 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.

CI #422 (9528fe3, phase 2): `DehydratedDeviceEndToEndTest.fresh_login_reads_the_gap_via_the_dehydrated_device` failed with `and left a fresh dehydrated device: Claiming` at the assertion right after `manageDehydratedDevice()` returned ≥ 1 healed events. Since D95 (#149) `unlockSecretStorage` triggers the automatic dehydration run as soon as it returns when the loop is up; the test then calls the manual `manageDehydratedDevice()` — two runs of the same flow race. The manual one returned its healed count while the automatic one still held the standing at `Claiming`. 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 `Active` with 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.
thecrealm 2026-09-11 21:23:39 +02:00
  • closed this issue
  • removed the
    now
    label
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
thecrealm/katrix#173
No description provided.