Enable full backtrace for exception in process spawn #14796
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
If an exception raises in the code that prepares a forked process for
exec
, the error message of this exception is written through a pipe to the original process, which then raises an exception for the calling code (Process.run
).The error only includes a message, no stack trace. So the only stack trace you get is that of the handler which reads the message from the pipe and raises in the original process.
But that's not very relevant. We want to know the location of the original exception.
This patch changes from sending just the exception message, to printing the entire backtrace (
inspect_with_backtrace
).Without this change:
With this change: