-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[bug] Possible for frame entry in stack table to be null #85
Comments
Note that the profile was generated from the latest released version of vernier, 1.1.1 |
I'm encountering the same thing. I'm profiling something with # frozen_string_literal: true
require "bundler/inline"
gemfile do
source "https://rubygems.org"
gem "rails", github: "rails/rails"
end This consistently produces a profile I'm unable to load for what I assume are the same reasons as OP. trace.json I run vernier like so: |
Reduced it a bit further and it seems to boil down to this: # frozen_string_literal: true
pid = Process.spawn("sleep", "1")
wait_thr = Process.detach(pid)
wait_thr.join The issue seems to be with # frozen_string_literal: true
pid = Process.fork do
sleep 1
end
wait_thr = Process.detach(pid)
wait_thr.join |
Thank you both! I just merged #89 which should fix this and released that as 1.1.2 |
This works nicely, thanks! |
@jhawthorn thank you! We'll try it out and report back if it is not resolved. |
A production app generated profiles which failed to load in any version of firefox-profiler we tried. One of our devs filed this issue upstream firefox-devtools/profiler#5074, but I believe the true issue is that the output from vernier is not a valid gecko profile.
The profile does not load in https://vernier.prof either. Here is the profile.
Looking closely at the error, I was able to determine that a thread has an invalid stack table:
The root cause seems to be that the "frame" entry itself is somehow "null". This gets input as a numeric index, and ends up exploding in the UI.
If I delete the invalid thread, the profile can now be displayed.
This seems like a legitimate bug in vernier, as we're somehow getting invalid output where the top stack frame references a null value, which is an invalid index into the frame table. The frametable is also empty, as the example shows.
The text was updated successfully, but these errors were encountered: