when called simultaneously with geth node shutdown:
To help emulate the environment needed to reproduce the bug, repro.sh
bootstraps,
runs and kills geth
and main.go
.
./repro.sh
ps
aftwerwards and ensure the go executable (ending withblockingbuild
) is still running. Note that it will not respond to a regularkill
command.- Install dlv (
go get -u github.com/derekparker/delve/cmd/dlv
) - Use
dlv attach <pid> <binarypath>
to attach to process - List goroutines with
goroutines
- Switch to goroutine stuck on go-ethereum
send
, i.e.goroutine 1
- Look at call stack with
stack
This issue is indeed spurious, so step 2 won't always reproduce, but in practice it reproduced 75% of the time.