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/pprof: apparent deadlock in TestGoroutineSwitch on linux-armv6l [1.17 backport] #47688

Closed
prattmic opened this issue Aug 13, 2021 · 3 comments
Labels
CherryPickApproved Used during the release process for point releases FrozenDueToAge
Milestone

Comments

@prattmic
Copy link
Member

#47505 should be considered for backport to the 1.17 major release.

This bug is not new and can cause deadlocks on linux/arm (GOARM=6) when profiling is turned on with no workaround. The biggest immediate issue for us is that this will cause new failures on all release builders, if not fixed.

I had to file this manually due to #25574.

@prattmic prattmic added the CherryPickCandidate Used during the release process for point releases label Aug 13, 2021
@prattmic prattmic added this to the Go1.17 milestone Aug 13, 2021
@gopherbot
Copy link

Change https://golang.org/cl/341890 mentions this issue: [release-branch.go1.17] runtime: drop SIGPROF while in ARM < 7 kernel helpers

@dmitshur
Copy link
Contributor

Approved as a fix for a serious issue without a workaround. This backport applies to both 1.17 (this issue) and 1.16 (#47675).

@dmitshur dmitshur added CherryPickApproved Used during the release process for point releases and removed CherryPickCandidate Used during the release process for point releases labels Aug 13, 2021
@gopherbot
Copy link

Closed by merging f7b9470 to release-branch.go1.17.

gopherbot pushed a commit that referenced this issue Aug 13, 2021
… helpers

On Linux ARMv6 and below runtime/internal/atomic.Cas calls into a kernel
cas helper at a fixed address. If a SIGPROF arrives while executing the
kernel helper, the sigprof lostAtomic logic will miss that we are
potentially in the spinlock critical section, which could cause
a deadlock when using atomics later in sigprof.

For #47505
Fixes #47688

Change-Id: If8ba0d0fc47e45d4e6c68eca98fac4c6ed4e43c1
Reviewed-on: https://go-review.googlesource.com/c/go/+/341889
Trust: Michael Pratt <mpratt@google.com>
Run-TryBot: Michael Pratt <mpratt@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
(cherry picked from commit 20a620f)
Reviewed-on: https://go-review.googlesource.com/c/go/+/341890
steeve pushed a commit to znly/go that referenced this issue Aug 19, 2021
… helpers

On Linux ARMv6 and below runtime/internal/atomic.Cas calls into a kernel
cas helper at a fixed address. If a SIGPROF arrives while executing the
kernel helper, the sigprof lostAtomic logic will miss that we are
potentially in the spinlock critical section, which could cause
a deadlock when using atomics later in sigprof.

For golang#47505
Fixes golang#47688

Change-Id: If8ba0d0fc47e45d4e6c68eca98fac4c6ed4e43c1
Reviewed-on: https://go-review.googlesource.com/c/go/+/341889
Trust: Michael Pratt <mpratt@google.com>
Run-TryBot: Michael Pratt <mpratt@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
(cherry picked from commit 20a620f)
Reviewed-on: https://go-review.googlesource.com/c/go/+/341890
@golang golang locked and limited conversation to collaborators Aug 13, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
CherryPickApproved Used during the release process for point releases FrozenDueToAge
Projects
None yet
Development

No branches or pull requests

3 participants