Relationships
#3320 signal_test fails on main: a signal by key handed over by the sweep is not answered taken
Opened by zack · 10/12/2026· Shipped 10/12/2026
Summary
One unit test fails deterministically on main, so the verify-build workflow fails for every branch that merges current main.
Test, in src/libswamp/workflows/signal_test.ts:
workflowSignal: a held signal another reader gave to a suspended wait is answered taken, with the resume its run needs
The test sends a signal by key while the pending-signal sweep hands that signal to a suspended wait, then expects the reply to report taken as true. The reply has taken undefined (assertion at signal_test.ts line 2552).
Where it broke
- 979580bf (PR 3034, swamp-club#3307, which added the test): the file passes, 73 passed, 0 failed.
- c448084f (PR 3036, swamp-club#3308, sweep pending signals without listing every wait-key record): the file fails, 72 passed, 1 failed.
- ead7d1c9 (main when this was filed): still fails.
PR 3036 did not touch signal_test.ts. It changed src/domain/workflows/early_signal.ts and signal_wait_cleanup.ts, added wait_key_claim.ts, and changed src/serve/continuation_sweep_service.ts. It was most likely verified against a main that did not yet contain the test from PR 3034.
Reproduce
On main:
deno run test src/libswamp/workflows/signal_test.ts
Expected
The test passes: a signal by key that the sweep gave to a suspended wait is answered with taken true, the wait id, and awaitingResume true.
Notes
- In the failing test the sweep step still asserts it took one pending signal, so the hand-over happens. What fails is the signaller learning who took the signal. Which change in PR 3036 breaks that lookup has not been traced.
- It is the only failing test in the full suite on a branch merged with main (23348 passed, 1 failed).
- Found while verifying PR 3037 (swamp-club#1090), which is blocked on it.
Shipped
Click a lifecycle step above to view its details.
Sign in to post a ripple.