[PROF-4081] Make threads with empty backtrace visible #1719
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.
As documented in the code, there's a few situations in which a thread can have an empty backtrace. Previously, these threads were not visible in the profiling UX, which was a gap in our provided information.
(It also could be confusing, for instance, if a thread spent some time executing Ruby and some time in native code, as happens with the Iodine web server, the "wall clock time" would not add up to 60s in a regular profile, because we ignored these threads).
To fix this, we now replace empty backtraces with a fake stack that displays
(In native code)
. We currently have no way of showing what's up in native code (is the code running? is the thread idle? we don't know), but at least we know it's there.