]> Cypherpunks repositories - gostls13.git/commit
[release-branch.go1.16] syscall: syscall.AllThreadsSyscall signal handling fixes
authorAndrew G. Morgan <agm@google.com>
Sat, 27 Mar 2021 02:27:22 +0000 (19:27 -0700)
committerIan Lance Taylor <iant@golang.org>
Tue, 4 May 2021 20:41:53 +0000 (20:41 +0000)
commitce04f86bd3aa8aacc7012228fa406c80c3a85d04
tree78213692595fee4c19b4b661c8be86d216995406
parent7e709791c22409826cb267fced81f210f6aaaf09
[release-branch.go1.16] syscall: syscall.AllThreadsSyscall signal handling fixes

The runtime support for syscall.AllThreadsSyscall() functions had
some corner case deadlock issues when signal handling was in use.
This was observed in at least 3 build test failures on ppc64 and
amd64 architecture CGO_ENABLED=0 builds over the last few months.

The fixes involve more controlled handling of signals while the
AllThreads mechanism is being executed. Further details are
discussed in bug #44193.

The all-threads syscall support is new in go1.16, so earlier
releases are not affected by this bug.

Fixes #45307

Change-Id: I01ba8508a6e1bb2d872751f50da86dd07911a41d
Reviewed-on: https://go-review.googlesource.com/c/go/+/305149
Reviewed-by: Michael Pratt <mpratt@google.com>
Trust: Michael Pratt <mpratt@google.com>
Trust: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Michael Pratt <mpratt@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
(cherry picked from commit 7e97e4e8ccdba9677f31ab9380802cd7613f62c5)
Reviewed-on: https://go-review.googlesource.com/c/go/+/316869
Run-TryBot: Ian Lance Taylor <iant@golang.org>
src/os/signal/signal_test.go
src/runtime/proc.go
src/runtime/runtime2.go
src/runtime/sigqueue.go