Development record
Two pseudo-terminal tests assert that a panic's message reached the terminal by reading the drained output once, straight after the child exits (internal/surface/cli/ask/pty_test.go, the a-panic-inside-the-loop case; internal/term/raw_child_test.go, the panic-in-a-hook case). The drain goroutine may not yet have read the child's last bytes, so the assertion races it. It failed on the macOS merge-queue runner on 2026-10-03 with 'the panic did not reach the terminal' and ejected an unrelated pull request from the merge queue.
issueresolvedmajoriss-2610040116409067
Two pseudo-terminal tests assert that a panic's message reached the terminal by reading the drained output once, straight after the child exits (internal/surface/cli/ask/pty_test.go, the a-panic-inside-the-loop case; internal/term/raw_child_test.go, the panic-in-a-hook case). The drain goroutine may not yet have read the child's last bytes, so the assertion races it. It failed on the macOS merge-queue runner on 2026-10-03 with 'the panic did not reach the terminal' and ejected an unrelated pull request from the merge queue.
Grounds
- pursued: the panic text reaches the test whenever it reaches the terminal; reproduced on a scratch copy with a short trace and the message's chunk delayed, the read-once form failing and the wait passing. A failure of either case now names a message that truly never arrived.
Frontmatter
| id | iss-2610040116409067 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | major |
.abcd/work/issues/resolved/iss-2610040116409067-two-pseudo-terminal-tests-assert-that-a.md
open on GitHub ↗ · commit history ↗