]> Cypherpunks repositories - gostls13.git/commit
runtime: clarify stack traces for bubbled goroutines
authorDamien Neil <dneil@google.com>
Thu, 5 Jun 2025 21:21:47 +0000 (14:21 -0700)
committerGopher Robot <gobot@golang.org>
Mon, 9 Jun 2025 17:58:51 +0000 (10:58 -0700)
commit848a768ba76d7c386c2aa4f05bc2e9e51b5948b9
tree91fec1f41cd6b322f1392c13629616f396260dfe
parent049a5e603634dfdbc73b4255c7e72eabc3922d5b
runtime: clarify stack traces for bubbled goroutines

Use the synctest bubble ID to identify bubbles in traces,
rather than the goroutine ID of the bubble's root goroutine.

Some waitReasons include a "(synctest)" suffix to distinguish
a durably blocking state from a non-durable one. For example,
"chan send" vs. "chan send (synctest)". Change this suffix
to "(durable)".

Always print a "(durable)" sufix for the state of durably
blocked bubbled goroutines. For example, print "sleep (durable)".

Drop the "[not] durably blocked" text from goroutine states,
since this is now entirely redundant with the waitReason.

Old:
  goroutine 8 [chan receive (synctest), synctest bubble 7, durably blocked]:
  goroutine 9 [select (no cases), synctest bubble 7, durably blocked]:

New:
  goroutine 8 [chan receive (durable), synctest bubble 1]:
  goroutine 9 [select (no cases) (durable), synctest bubble 1]:

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