You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
util/ctxgroup: print recovered panic stacks during crash
When ctxgroup recovers a panic in a worker to be rethrown in Wait(),
it uses errors.WithStack to try to capture the stack to the original
panic, and subsequent recover, in the error that is stored to be
rethrown on the Wait goroutine. And indeed, WithStack captures it...
but only to have it ignored and not printed by the runtime crash
handler, which just invokes Error(), if/when the rethrown panic
bubbles up if unrecovered.
This makes such panics _very_ hard to debug: all information about
where they were actually raised is gone, making this rethrow-on-Wait
actually much worse than just not recovering at all.
This changes the capture-and-rethrow to wrap the captured error in a
thin wrapper that overrides .Error() to incldue the stack, so that it
is printed by the runtime crash handler if a rethrown panic makes it
there.
Release note: none.
Epic: none.
Informs: #153347
0 commit comments