]> Cypherpunks repositories - gostls13.git/commit
runtime: return a different bubble deadlock error when main goroutine is done
authorDamien Neil <dneil@google.com>
Thu, 5 Jun 2025 20:55:35 +0000 (13:55 -0700)
committerGopher Robot <gobot@golang.org>
Mon, 9 Jun 2025 17:55:42 +0000 (10:55 -0700)
commit049a5e603634dfdbc73b4255c7e72eabc3922d5b
tree05e4ee4d56a306fde2a62aaa8bcb91a83c7706a6
parentac1686752bf65eaefebb340bd642177e2cc27bde
runtime: return a different bubble deadlock error when main goroutine is done

The synctest.Test function waits for all goroutines in a bubble to
exit before returning. If there is ever a point when all goroutines
in a bubble are durably blocked, it panics and reports a deadlock.

Panic with a different message depending on whether the bubble's
main goroutine has returned or not. The main goroutine returning
stops the bubble clock, so knowing whether it is running or not
is useful debugging information.

The new panic messages are:
deadlock: all goroutines in bubble are blocked
deadlock: main bubble goroutine has exited but blocked goroutines remain

Change-Id: I94a69e79121c272d9c86f412c1c9c7de57ef27ef
Reviewed-on: https://go-review.googlesource.com/c/go/+/679375
Auto-Submit: Damien Neil <dneil@google.com>
Reviewed-by: Michael Pratt <mpratt@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
src/internal/synctest/synctest_test.go
src/runtime/synctest.go