New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 646725 link

Starred by 2 users

Issue metadata

Status: WontFix
Owner:
Last visit > 30 days ago
Closed: Sep 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug-Regression



Sign in to add a comment

Begin/End Phase events missing ID

Reported by rob.schi...@gmail.com, Sep 14 2016

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.103 Safari/537.36

Steps to reproduce the problem:
1. Run chrome - trace to file - disabled-by-default.timeline
2. inspect tracefile look for functionCall events or any event with ph B/ph E
3. 

What is the expected behavior?
Events should have an ID property that can be used for matching begin/end events or events should be complete events with a duration.

What went wrong?
trace events with ph of B/E have no id parameters.  The E record is useless now... impossible to associate the 2 events - BBBEBEEE - no way to figure out what is end for what.

Did this work before? Yes Version < 48 maybe? 

Chrome version: 48.0.2564.103  Channel: n/a
OS Version: OS X 10.10.5
Flash Version: Shockwave Flash 22.0 r0

I know this used to be a complete type event with a dur parameter.  Webkit code seems to have the id's maybe switching to blink tracing has something to do with it?   I see many B/E type events now, most have no way to associate.
 
Components: Platform>DevTools>Performance>Tracing
Status: Untriaged (was: Unconfirmed)
To Platform>DevTools>Performance>Tracing for triage.
Components: -Platform>DevTools>Performance>Tracing Infra>Client>Perf
I believe the tracing functionality is managed by the Perf team. DevTools tracing is for web developers analyzing site performance.

Comment 3 by rsesek@chromium.org, Sep 20 2016

Components: Internals>Tracing

Comment 4 by hjd@chromium.org, Sep 28 2016

Owner: hjd@chromium.org
Status: WontFix (was: Untriaged)
Hi Rob :)

I couldn't find the explicit events you mentioned but from what
I understand (which isn't that much) most of the time it works like this:

In general for a particular each thread (tid) within the particular
process (pid) duration begin and end events are always perfectly
nested.

For example if you see these events (for a particular pid,tid pair):
BBBEEBEE
You know the nesting structure is like this:
((())())
And so the events are paired like this:
[------]
 [--][]
  []

Concretely if you get some events that look like this:
[
  {"cat":"r", "pid":1, "tid":1, "ts":100, "ph":"B", ...},
  {"cat":"r", "pid":1, "tid":1, "ts":150, "ph":"B", ...},
  {"cat":"r", "pid":1, "tid":1, "ts":200, "ph":"E", ...},
  {"cat":"r", "pid":1, "tid":2, "ts":300, "ph":"B", ...},
  {"cat":"r", "pid":1, "tid":1, "ts":350, "ph":"E", ...},
  {"cat":"r", "pid":1, "tid":2, "ts":400, "ph":"E", ...},
]

For pid=1, tid=1 we have the following events:
[
  {"cat":"r", "pid":1, "tid":1, "ts":100, "ph":"B", ...},
  {"cat":"r", "pid":1, "tid":1, "ts":150, "ph":"B", ...},
  {"cat":"r", "pid":1, "tid":1, "ts":200, "ph":"E", ...},
  {"cat":"r", "pid":1, "tid":1, "ts":350, "ph":"E", ...},
]

BBEE
(())
[--]
 []

So for pid=1,tid=1 we know that
the B at ts=100 is paired with the E at ts=350 and
the B at ts=150 is paired with the E at ts=200

There are also 'async events', these events have an 'id' field which is used
to distinguish them. The id is *not* unique to a particular pair of B/E events
instead is unique whole bunch of B/E events that have the same perfectly nested
structure as above.

This doc provides a lot more context about the format: https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU

I hope that helps. I'll close this as 'WontFix' for now but comment/reopen if I have missed the point or if it's not clear.
Thanks!
Very helpful.  Thank you.

Sign in to add a comment