Patch Enumerator#next to get better stack traces
What does this MR do and why?
Enumerator#next
has poor stack traces due to
https://bugs.ruby-lang.org/issues/16829. Append the caller's stack
trace to the raised exception.
Found while working on #342703 (closed). Gitlab::GitalyClient::Call#instrument_stream
calls Enumerator#next
. which means that exceptions thrown while reading from a GRPC stream (in this case a GRPC::DeadlineExceeded
) contain only the backtrace information from GRPC itself, since that's all that's running in the Fiber
created by #next
Example stacktrace: !88882 (comment 994128140)
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.
Edited by Thong Kuah