-
Notifications
You must be signed in to change notification settings - Fork 9.4k
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
Inconsistent handling of non-ending trace events #10616
Comments
Only kind of, sorry if I confused things with jokes :) Since #9785 we will always truncate the event at the end of the parent task and be very forgiving. lighthouse/lighthouse-core/lib/tracehouse/main-thread-tasks.js Lines 268 to 271 in 9a6afb3
Because we only look at events inside toplevel tasks (which are "complete"
This sounds less forgiving than where we stand right now. |
I'm working on a repro/bisect here. The most reproducible case I have is that on a CompositorTileWorker, the last "RasterTask" is often missing its END. Debugging right now, but it might be correlated to if the Update! eseckler chimed in:
upstream bug: https://bugs.chromium.org/p/chromium/issues/detail?id=1021571 |
Oh fantastic. Okay so,
|
captured the full story for devtools in https://bugs.chromium.org/p/chromium/issues/detail?id=982252#c11 |
It seems like this may finally be fixed in Chromium. https://bugs.chromium.org/p/chromium/issues/detail?id=1021571#c25 |
It's very common (increasingly common, even?) to have a trace where some Begin (phase
B
) events do not have their partnered End (phaseE
) events. We'll call these "non-ending trace events".Here's one such trace: Profile-20200420T122902.json.zip. Captured in Chrome DevTools UI. The "Rasterize Paint" aka
RasterTask
events are complete events (phaseX
), normally, except for when they don't end. Then, they are justB
events.Here's a more complex trace with plenty of the same behavior. trace_Mon_Apr_20_2020_3.09.45_PM.json.zip It was captured using the new perfetto pipeline.
That same trace rendered in both traceviewer and devtools:
The new perfetto viewer also doesn't elongate the pending events:
In fact, you can zoom in and see the green parent (which is non-ending) is visually shown as an instant event, even when it has a child that starts after and has a real duration:
Here's the current state of how our tools handle this situation:
duration
to be the maxTrackTimestamp, and keeps adidNotFinish
flag on it. maxTrackTimestamp is the last knownend
time for that track (where "track" ~= thread)unbounded
and end the event at trace end. Update: i was wrong, see patrick's commentI'd like to suggest a few actions:
ref GoogleChrome/lighthouse-ci#276 (comment)
ref #9491
The text was updated successfully, but these errors were encountered: