-
Notifications
You must be signed in to change notification settings - Fork 18k
os,internal/poll: reads from closed pipes sometimes do not unblock on darwin #63937
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
In triage, we think maybe this and the darwin memory corruption issues would be a good target for our friction fixit week time. We think the next step is to attempt to reproduce the issue in C and see if we need to escalate this as a kernel bug or something. |
I randomly stumbled across #25696 today. It isn't clear to me whether that is related, since it is using |
Found new dashboard test flakes for:
2023-12-15 21:38 darwin-arm64-11 tools@3bed1477 go@8cb86b5f x/tools/gopls/internal/cmd.TestExecute (log)
|
Found new dashboard test flakes for:
2023-12-07 19:37 darwin-amd64-11_0 pkgsite@00698da1 go@9b4b3e5a (log)
|
Found new dashboard test flakes for:
2023-12-18 20:56 darwin-amd64-13 tools@ee47fd47 go@c564d4ae (log) |
I think this is caused by an incomplete fix for #24164. We avoid adding FDs of type This is probably also related to the difference in |
I'm not sure I agree with your conclusion. Despite the similarity in inter-process communication, Pipes and FIFOs are fundamentally different: Pipes are created in memory, and their existence is transient while FIFOs persist as special files in the file system until they are removed. And
, which is why TestPipeEOF has been succeeding. The only problem is FIFO, |
Huh. Looking a bit more closely:
So it seems plausible that either this is a composite of more than one bug, or perhaps a general race condition in the poller (not specific to pipes). |
Found new dashboard test flakes for:
2024-01-05 15:13 darwin-amd64-nocgo tools@920d665b go@8db13108 x/tools/gopls/internal/test/marker.Test (log)
|
Found new dashboard test flakes for:
2024-01-05 14:42 darwin-amd64-nocgo tools@88ea935e go@8db13108 x/tools/gopls/internal/test/marker.Test (log)
|
Found new dashboard test flakes for:
2024-01-05 15:29 darwin-amd64-11_0 tools@3e8a0a3b go@5c38c049 x/tools/gopls/internal/cmd.TestCodeLens (log)
|
Although a new patch that stops pipes being added into I can draft a CL, in which we knock off pipes from |
Found new dashboard test flakes for:
2024-01-08 23:16 darwin-amd64-12_0 tools@c95fa0ff go@b7c630dc x/tools/gopls/internal/cmd.TestFoldingRanges (log)
|
Found new dashboard test flakes for:
2024-01-08 18:46 darwin-amd64-12_0 build@21e06540 go@59ecebf4 (log) |
This comment was marked as off-topic.
This comment was marked as off-topic.
Found new dashboard test flakes for:
2024-02-21 22:16 gotip-darwin-amd64-longtest go@507d1b22 cmd/go.TestScript/repro_build (log)
|
Found new dashboard test flakes for:
2024-02-26 20:48 gotip-darwin-amd64-longtest go@cab90c84 cmd/go.TestScript/test_fuzz (log)
|
Found new dashboard test flakes for:
2024-02-27 18:08 gotip-darwin-amd64-longtest go@296d0812 cmd/go.TestScript/cover_pkgall_runtime (log)
2024-02-27 21:07 gotip-darwin-amd64-longtest go@b847d4cd cmd/go.TestScript/repro_build (log)
2024-02-28 18:17 gotip-darwin-amd64-longtest go@2278ffcb cmd/go.TestScript/test_rebuildall (log)
2024-02-28 18:17 gotip-darwin-amd64-longtest go@2278ffcb runtime.TestPingPongHog (log)
|
Found new dashboard test flakes for:
2024-03-25 21:28 x_tools-gotip-darwin-amd64_11 tools@2c8dd3ec go@e7bdc881 x/tools/gopls/internal/test/integration/diagnostics.TestInitialization [ABORT] (log)
2024-03-25 21:28 x_tools-gotip-darwin-amd64_11 tools@2c8dd3ec go@e7bdc881 x/tools/gopls/internal/test/integration/misc.TestRenamePackageWithConflicts [ABORT] (log)
2024-03-25 21:28 x_tools-gotip-darwin-amd64_11 tools@2c8dd3ec go@e7bdc881 x/tools/gopls/internal/test/marker.Test [ABORT] (log)
|
Found new dashboard test flakes for:
2024-03-26 19:50 gotip-darwin-amd64-longtest go@51a96f86 cmd/go.TestScript/test_vet (log)
2024-03-27 21:58 gotip-darwin-amd64-longtest go@2e1003e2 cmd/go.TestScript/build_trimpath_cgo (log)
2024-03-29 16:41 gotip-darwin-amd64_11 go@8f59b28f cmd/cgo/internal/testplugin.TestIssue22295 [ABORT] (log)
2024-03-29 16:41 gotip-darwin-amd64_11 go@8f59b28f cmd/compile/internal/loopvar.TestLoopVarHashes [ABORT] (log)
2024-03-29 16:41 gotip-darwin-amd64_11 go@8f59b28f cmd/compile/internal/ssa.TestDebugLines_53456 (log)
|
Found new dashboard test flakes for:
2024-04-19 17:39 gotip-darwin-amd64-longtest go@c260de24 cmd/go.TestScript/cover_pkgall_runtime (log)
|
Found new dashboard test flakes for:
2024-04-26 13:32 gotip-darwin-amd64-longtest go@4370cfbd cmd/go.TestScript/vet_flags (log)
2024-04-26 18:12 gotip-darwin-amd64-longtest go@b384ee7c cmd/go.TestScript/test_cache_inputs (log)
|
Found new dashboard test flakes for:
2024-04-27 11:30 gotip-darwin-amd64-longtest go@774d5b36 cmd/go.TestScript/cgo_suspect_flag_force_external (log)
|
Found new dashboard test flakes for:
2024-04-30 19:45 gotip-darwin-amd64-longtest go@959e65c4 cmd/go.TestScript/test_rebuildall (log)
|
Found new dashboard test flakes for:
2024-05-07 18:48 gotip-darwin-amd64-longtest go@5f5e9f4f cmd/go.TestScript/reuse_git (log)
|
Found new dashboard test flakes for:
2024-05-14 16:17 gotip-darwin-amd64-longtest go@9fa34d9f cmd/compile/internal/types2.TestStdlib (log)
2024-05-14 16:17 gotip-darwin-amd64-longtest go@9fa34d9f cmd/go.TestScript/test_vet (log)
|
Found new dashboard test flakes for:
2024-05-16 01:32 gotip-darwin-amd64-longtest go@1ffc2967 cmd/go.TestScript/repro_build (log)
|
Found new dashboard test flakes for:
2024-05-15 14:39 gotip-darwin-amd64-longtest go@80565407 cmd/go.TestScript/cover_pkgall_runtime (log)
2024-05-15 14:41 gotip-darwin-amd64-longtest go@27603028 cmd/go.TestScript/test_fuzz_deadline (log)
|
Found new dashboard test flakes for:
2024-05-21 16:24 gotip-darwin-amd64-longtest go@d68d4854 cmd/go.TestScript/build_overlay (log)
2024-05-22 09:57 gotip-darwin-amd64-longtest go@df4e4936 cmd/compile/internal/types2.TestStdlib (log)
2024-05-22 09:57 gotip-darwin-amd64-longtest go@df4e4936 cmd/go.TestScript/gcflags_patterns (log)
|
We have been tracking a long-running bug on macOS (
darwin
) in #54461 (comment). That issue title doesn't accurately capture the widespread nature of the problem, nor its defining symptom or suspected root cause; so, I am filing a new issue for it.On macOS, we see a pattern of test failures with the following characteristics:
read
operation on a pipe.Many of these bugs have been worked around by explicitly canceling (or adding a timeout to) the stuck read.
The issues with this symptom have included:
A few other issues may be related but don't (or didn't) include goroutine dumps for the stuck process: they may or may not be due to this failure mode.
subprogram failed: exit status 1
afterWaiting for exit...
#61595context deadline exceeded
ondarwin
#63731signal: killed
on darwin #64110context deadline exceeded
on darwin #64269darwin
#64700Given the symptoms, it seems likely to me that this is either a bug in
internal/poll
, or a bug in the macOS platform that we have somehow started to trigger.Note that #61779 was bisected specifically to https://go.dev/cl/420334.
The text was updated successfully, but these errors were encountered: