Skip to content
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

runtime: deadlock in TestWeakToStrongMarkTermination #70532

Closed
gopherbot opened this issue Nov 23, 2024 · 5 comments
Closed

runtime: deadlock in TestWeakToStrongMarkTermination #70532

gopherbot opened this issue Nov 23, 2024 · 5 comments
Assignees
Labels
compiler/runtime Issues related to the Go compiler and/or runtime. NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. release-blocker
Milestone

Comments

@gopherbot
Copy link
Contributor

gopherbot commented Nov 23, 2024

#!watchflakes
default <- pkg ~ `runtime` && test == "TestWeakToStrongMarkTermination"

Issue created automatically to collect these failures.

Example (log):

=== RUN   TestAbortInCgo
=== PAUSE TestAbortInCgo

watchflakes

@gopherbot gopherbot added the NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. label Nov 23, 2024
@gopherbot
Copy link
Contributor Author

Found new dashboard test flakes for:

#!watchflakes
default <- pkg == "runtime:cpu4" && test == "TestAbortInCgo"
2024-11-23 00:14 gotip-linux-arm64-longtest go@8fb6a469 runtime:cpu4.TestAbortInCgo [ABORT] (log)
=== RUN   TestAbortInCgo
=== PAUSE TestAbortInCgo

watchflakes

@gopherbot gopherbot added the compiler/runtime Issues related to the Go compiler and/or runtime. label Nov 23, 2024
@mknyszek mknyszek self-assigned this Dec 4, 2024
@mknyszek mknyszek added this to the Go1.24 milestone Dec 4, 2024
@mknyszek
Copy link
Contributor

mknyszek commented Dec 4, 2024

This is actually a failure in a new test, TestWeakToStrongMarkTermination. This appears to be a test-specific failure. As far as I can tell, the goroutine that is tasked with letting gcMarkDone proceed is the goroutine that calls gcMarkDone due to the timer allocation in time.Sleep. Whoops. I guess the sleep has to be lower-level than that, maybe a usleep?

@mknyszek mknyszek changed the title runtime:cpu4: TestAbortInCgo failures runtime: deadlock in TestWeakToStrongMarkTermination Dec 4, 2024
@mknyszek mknyszek moved this from Todo to In Progress in Go Compiler / Runtime Dec 4, 2024
@mknyszek
Copy link
Contributor

mknyszek commented Dec 4, 2024

This failure mode is incredibly rare, so if this happened during the development cycle, I don't think it would have a particularly high priority. But we should still fix it soon, since it was introduced in this release.

@mknyszek mknyszek added release-blocker okay-after-rc1 Used by release team to mark a release-blocker issue as okay to resolve either before or after rc1 labels Dec 7, 2024
@prattmic
Copy link
Member

Another case occurred in https://ci.chromium.org/b/8730523567768266401.

@gopherbot gopherbot removed the okay-after-rc1 Used by release team to mark a release-blocker issue as okay to resolve either before or after rc1 label Dec 13, 2024
@gopherbot
Copy link
Contributor Author

Change https://go.dev/cl/636155 mentions this issue: runtime: usleep in TestWeakToStrongMarkTermination

@github-project-automation github-project-automation bot moved this from In Progress to Done in Go Compiler / Runtime Dec 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
compiler/runtime Issues related to the Go compiler and/or runtime. NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. release-blocker
Projects
Status: Done
Development

No branches or pull requests

3 participants