]> Cypherpunks.ru repositories - gostls13.git/commit
syscall: syscall.AllThreadsSyscall signal handling fixes
authorAndrew G. Morgan <agm@google.com>
Sat, 27 Mar 2021 02:27:22 +0000 (19:27 -0700)
committerMichael Pratt <mpratt@google.com>
Wed, 21 Apr 2021 21:25:26 +0000 (21:25 +0000)
commit7e97e4e8ccdba9677f31ab9380802cd7613f62c5
tree74a0797fa08596e554f1f5f6070fb95ea961aba3
parent54af9fd9e69d5cc33b16b9a32d9f7dc71eef0d18
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 #44193

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>
src/os/signal/signal_test.go
src/runtime/proc.go
src/runtime/runtime2.go
src/runtime/sigqueue.go