Austin Clements
Austin Clements
All of the Ms are just parked in `mPark` in normal places in the scheduler, except one thread that's in the infinite loop in `crashDumpsAllThreadsLoop`. `/proc/PID/status` and `/proc/PID/task/*/status` says there...
Ah hah, it's getting stuck before the SIGQUIT is involved. It's actually getting stuck in [this loop](https://cs.opensource.google/go/go/+/master:src/runtime/testdata/testprog/crashdump.go;l=22;drc=02a8e836616cb8eb6d776514c6239095b1328fd2), before the subprocess even indicates to the parent that it's ready for the...
Amusingly, this means you *can* send the subprocess a SIGQUIT. I've pasted the interesting part of the traceback below. All other goroutines and threads are uninteresting (this is running with...
Faster repro. Apply the following diff ```diff --- a/src/runtime/testdata/testprog/crashdump.go +++ b/src/runtime/testdata/testprog/crashdump.go @@ -29,6 +29,8 @@ func CrashDumpsAllThreads() {
Here's a version that works without a patch: ```sh cd runtime/testdata/testprog GOFLAGS="-gcflags=runtime=-d=maymorestack=runtime.mayMoreStackPreempt -gcflags=runtime/testdata/...=" go build GOTRACEBACK=crash GOGC=off GODEBUG=asyncpreemptoff=1 stress2 -timeouts-fail -max-fails=1 -timeout=10s -pass="write to pipe" -max-runs=50000 ./testprog CrashDumpsAllThreads ```
This isn't new, either. I reproduced in Go 1.18, which was the first release to have mayMoreStack.
> The cause of this flake (using Austin's reproducer above) is maymorestack instrumentation of any one (or more) of Thanks for running this. I think this rules out the "we...
Trybot example: https://storage.googleapis.com/go-build-log/9297dad6/linux-amd64-race_ec0c425f.log
I also prefer @bcmills ' [alternate signature](https://github.com/golang/go/issues/61308#issuecomment-1631737298). It has the clear advantage of using `unsafe.Pointer`, and I suspect in practice it will be more common that callers will have an...
I agree that most likely we need multiple epoll FDs, with some sort of affinity. @bwerthmann , since you're able to get perf profiles, could you get one with `perf...