mirror of
https://github.com/temporalio/temporal.git
synced 2026-08-30 18:41:49 -07:00
## What changed? Back `testSequentialTaskQueue` with an unbounded slice instead of a 3000-capacity channel, so `Add` no longer blocks. ## Why? `common/tasks` deadlocked and timed out after 15m on main ([run 32773080605](https://github.com/temporalio/temporal/actions/runs/32773080605)). `SequentialScheduler.Submit` calls `Add` from inside `PutOrDo`'s callback, which runs under the shard write lock. Once the test queue's channel filled, the submitter blocked in `Add` while holding that lock, and the only worker was blocked on the same lock in `RemoveIf`. Holding the lock across the add is deliberate — it keeps the add atomic against `RemoveIf`'s empty-check — so the invariant is that `Add` must not block, and only the test queue violated it. ## How did you test it? - [x] built - [x] run locally and tested manually - [x] covered by existing tests