Closed Bug 1578354 Opened Last month Closed Last month

DevTools Performance Tool Flame Chart unable to display call stack

Categories

(DevTools :: Performance Tools (Profiler/Timeline), defect, P1)

71 Branch
Desktop
All
defect

Tracking

(relnote-firefox 69+, firefox-esr60 unaffected, firefox-esr68 unaffected, firefox69+ verified, firefox70+ verified, firefox71+ verified)

VERIFIED FIXED
Firefox 71
Tracking Status
relnote-firefox --- 69+
firefox-esr60 --- unaffected
firefox-esr68 --- unaffected
firefox69 + verified
firefox70 + verified
firefox71 + verified

People

(Reporter: claudiococciarelli, Assigned: julienw)

References

(Regression)

Details

(Keywords: regression)

Attachments

(3 files, 2 obsolete files)

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:71.0) Gecko/20100101 Firefox/71.0

Steps to reproduce:

  • Open the Performance tool in DevTools and begin to record
  • Do any activity on the web (ex. search "firefox" on google.com then switch to Video)
  • Stop the recording and select the Flame chart JS tab

The bug only affects recent builds such as Nightly 71 and Firefox Developer Edition 70, Firefox stable 68.0.2 is not affected.

Actual results:

No Call stack is shown (see attachment with dark background, Firefox Nightly 71)

Expected results:

A correct Flame Chart is shown (see attachment with light background, Firefox 68.0.2)

Component: Untriaged → Performance Tools (Profiler/Timeline)
OS: Unspecified → All
Product: Firefox → DevTools
Hardware: Unspecified → Desktop
Status: UNCONFIRMED → NEW
Ever confirmed: true
Priority: -- → P1

Looks like we have no stack at all in v69. This is super bad because this makes the tool completely useless, and v69 is released today.

Bogdan, could your team help us find the regression range? Thanks!

Flags: needinfo?(bogdan.maris)

(In reply to Pascal Chevrel:pascalc from comment #3)

Bogdan, could your team help us find the regression range? Thanks!

Sure thing! Daniel, can you please take this for a spin?

Flags: needinfo?(bogdan.maris) → needinfo?(daniel.cicas)

Hello,

we save the native fonts by their full path now. On macOS, there is no
such thing as a full filesystem path for a CGFont (or at least we don't track it),
so loading a capture falls back to the old logic of using the dummy font.

I hope this helps. If I can help with anything else NI me.

Has Regression Range: --- → yes
Flags: needinfo?(daniel.cicas)

Thanks for the regression window! I'm pretty sure this has rather been regressed by Bug 1557789, some format have been changed and probably we have to change it in this tool as well.

Regressed by: 1557789
Assignee: nobody → felash

Claudio, as a work around, you can set the option "Show Gecko Platform Data"; you'll have more information than you're used to, but at least you'll be able to access the stacks.

Bug 1557789 added categories to all JS frames, so as a result JS frames
where all filtered out because of the condition changed in this patch.
We now check for the JS category as well.

Bug 1557789 added categories to all JS frames, so as a result JS frames
where all filtered out because of the condition removed in this patch.
This condition is basically a premature optimization, removing it
shouldn't bring any behavior difference.

Attachment #9090390 - Attachment is obsolete: true

Bug 1557789 added categories to all JS frames, so as a result JS frames
where all filtered out because of the condition removed in this patch.
This condition is basically a premature optimization, removing it
shouldn't bring any behavior difference.

Attachment #9090658 - Attachment description: Bug 1578354 - Remove the obsolete condition so that JS frames are now properly filtered in in the call tree → (mozilla-release patch) Bug 1578354 - Remove the obsolete condition so that JS frames are now properly filtered in in the call tree
Attachment #9090658 - Attachment description: (mozilla-release patch) Bug 1578354 - Remove the obsolete condition so that JS frames are now properly filtered in in the call tree → Bug 1578354 - Remove the obsolete condition so that JS frames are now properly filtered in in the call tree

Comment on attachment 9090658 [details]
Bug 1578354 - Remove the obsolete condition so that JS frames are now properly filtered in in the call tree

Beta/Release Uplift Approval Request

  • User impact if declined: By default, the stacks are not visible in the call tree and the flame graph, making the tool nearly useless. The user has to enable "show Gecko Platform Data" which shows more data than is needed for an average web developer.
  • Is this code covered by automated tests?: Yes
  • Has the fix been verified in Nightly?: Yes
  • Needs manual test from QE?: No
  • If yes, steps to reproduce:
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): This is a small and self-contained patch. It also has a lot of tests attached to it (sadly not enough to find this regression but well...).
    This patch is only for the release branch as another more complex patch will be done for nightly and beta.
  • String changes made/needed: none
Attachment #9090658 - Flags: approval-mozilla-release?

Comment on attachment 9090391 [details]
Bug 1578354 - Remove the obsolete condition so that JS frames are now properly filtered in in the call tree

The more complex change will go to a separate bug.

Attachment #9090391 - Attachment is obsolete: true
Pushed by jwajsberg@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/6f265c2b6735
Remove the obsolete condition so that JS frames are now properly filtered in in the call tree r=gregtatum

Comment on attachment 9090658 [details]
Bug 1578354 - Remove the obsolete condition so that JS frames are now properly filtered in in the call tree

Beta/Release Uplift Approval Request

  • User impact if declined: By default, the stacks are not visible in the call tree and the flame graph, making the tool nearly useless. The user has to enable "show Gecko Platform Data" which shows more data than is needed for an average web developer.
  • Is this code covered by automated tests?: Yes
  • Has the fix been verified in Nightly?: Yes
  • Needs manual test from QE?: No
  • If yes, steps to reproduce:
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): This is a small and self-contained patch. It also has a lot of tests attached to it (sadly not enough to find this regression but well...).
    This patch is only for the release branch as another more complex patch will be done for nightly and beta.
  • String changes made/needed: none
Attachment #9090658 - Flags: approval-mozilla-beta?
Status: NEW → RESOLVED
Closed: Last month
Resolution: --- → FIXED
Target Milestone: --- → Firefox 71

Hey Claudio,
The fix should be in the latest nightly.
Can you please double check that this works for you in that version?
Thanks in advance!

Flags: needinfo?(claudiococciarelli)

Hi Julien,
just downloaded the latest nightly and yes, in my use case it now works as it did before. Thank you guys for the quick fix!

Flags: needinfo?(claudiococciarelli)

Thanks for the check!
Actually while investigating, I found that we were probably hiding some javascript frames, but not all... for several years. This was fixed as part of this fix too.

Comment on attachment 9090658 [details]
Bug 1578354 - Remove the obsolete condition so that JS frames are now properly filtered in in the call tree

Fix for regression, includes test fixes, verified in nightly.
Ok for uplift for beta 5.

Attachment #9090658 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Flags: in-testsuite+
Flags: qe-verify+
QA Whiteboard: [qa-triaged]

Hello,

I can confirm this issue is fixed on Fx 70.0b5 I verified on Win 10 x64, mac OS 10.13 and Ubuntu 18.04.

Status: RESOLVED → VERIFIED
Flags: qe-verify+

Comment on attachment 9090658 [details]
Bug 1578354 - Remove the obsolete condition so that JS frames are now properly filtered in in the call tree

Fixes a devtools regression causing stacks to not show. Approved for 69.0.1.

Attachment #9090658 - Flags: approval-mozilla-release? → approval-mozilla-release+

Added to the 69.0.1 relnotes:

Fixed missing stacks in the Developer Tools Performance section

Hello,

I can confirm that this issue does not occur on Fx 69.0.1 RC on Win 10 x64, Ubuntu 18.04 and mac OS 10.13.

You need to log in before you can comment on or make changes to this bug.