runtime: STW GC stops working #34736
Comments
Some investigating; cat >/tmp/hello.go <<EOF
package main
func main() { println("Hello") }
EOF
cat >/tmp/bisect.sh <<EOF
set -e
cd src
./make.bash
for i in 1 2 3; do
GODEBUG=gcstoptheworld=1 GOGC=1 go tool compile -o /tmp/x /tmp/hello.go
done
EOF
chmod a+x /tmp/bisect.sh
git bisect start master $(git merge-base master go1.13)
git bisect run /tmp/bisect.sh And the result:
cc @mknyszek |
I believe I found the problem, and it's actually the deadlock detector detecting a deadlock! Unfortunately the deadlock happens during a STW GC so The problem is that after |
Change https://golang.org/cl/208379 mentions this issue: |
What version of Go are you using (
go version
)?tip (cfe2320)
Does this issue reproduce with the latest release?
No. Go 1.13 works fine.
What operating system and processor architecture are you using (
go env
)?darwin/amd64, linux/amd64
What did you do?
The compiler is just used as an example. This happens with essentially any non-trivial Go program. Setting
GOGC=1
makes it happens more likely.What did you expect to see?
Runs successfully.
What did you see instead?
cc @aclements
The text was updated successfully, but these errors were encountered: