machines appear to have pseudo-TTY issues
See original GitHub issueDescribe the bug
A Go test that makes use of pseudo-TTYs works fine on both Linux and Mac locally, and on Linux on Actions. However, on Mac on Actions, it fails pretty regularly, about a quarter of the time.
To Reproduce
- Install Go 1.14.x
- Clone https://github.com/mvdan/sh
- Revert https://github.com/mvdan/sh/commit/ab43dfa8ae84bf3e4c10176a4bd4d837aa97ba9a to re-enable the flaky test
- Run the test a bunch of times, via
go test -run TestRunnerTerminalExec/Pseudo ./interp
You can hammer the test much harder by using stress. For example, to run 64 parallel processes until you hit a failure:
go test -vet=off -c -o test && stress -p=64 ./test -test.run TestRunnerTerminalExec/Pseudo
Expected behavior
No failures, ever. @theclapp was nice enough to run the stress
line above, and he got zero failures even after 200k runs in over fifteen minutes. Likewise, I can’t reprodue any issue on Linux.
Runner Version and Platform
From a recent failed job on macos-latest
today, Current runner version: '2.165.2'
. Links below.
What’s not working?
The test fails with a weird signal: hangup
error:
--- FAIL: TestRunnerTerminalExec (0.00s)
--- FAIL: TestRunnerTerminalExec/Pseudo (0.04s)
##[error] terminal_test.go:129: signal: hangup
FAIL
FAIL mvdan.cc/sh/v3/interp 3.529s
Below is a list of such failures in the past few weeks:
- https://github.com/mvdan/sh/pull/531/checks?check_run_id=538743036
- https://github.com/mvdan/sh/runs/507984876
- https://github.com/mvdan/sh/runs/462330729
I really don’t know what else to try. Given that physical Mac machines of ours can’t reproduce the issue, and that the error seems to come from a OS signal, I don’t know how else to proceed but to raise a bug here.
Issue Analytics
- State:
- Created 3 years ago
- Reactions:3
- Comments:15 (4 by maintainers)
Top GitHub Comments
We’re also seeing issues with the Mac builders for the https://github.com/govim/govim project, to the extent that we had to disable the Mac tests:
https://github.com/govim/govim/commit/2d6e2fb03301c6c5f512f18b17aa0a5b00a9d575
Our tests are considerably more involved than @mvdan’s so I suspect using the repro above will be simpler. But in case you need the repro steps, the linked commit gives the steps our mac builds used to follow before we disabled them.
Very happy to provide more info/help diagnose - we’re just out of ideas on our side 😃
@mvdan, thank you for notifying us!