Open Bug 1640702 Opened 4 years ago Updated 3 years ago

Profiles captured from mach mochitest --profiler have mangled symbol names on artifact builds without --enable-artifact-build-symbols

Categories

(Core :: Gecko Profiler, defect, P3)

defect

Tracking

()

People

(Reporter: florian, Unassigned)

References

Details

Here is the profile that opened when I ran ./mach mochitest --profiler browser/base/content/test/webrtc/browser_devices_get_user_media_anim.js.

Here is the same profile that I symbolicated by dropping it onto profiler.firefox.com. (I had previously captured a profile from my local build. I made a copy of the shutdown profile on disk while "Symbolicating the performance profile... This could take a couple of minutes." was the last line displayed in the terminal, so it's really the same profile).

In the first profile, symbol names look like __Z8XRE_mainiPPcRKN7mozilla15BootstrapConfigE, but in the second one they look like XRE_main(int, char**, mozilla::BootstrapConfig const&) for the same function.

I only tested this on Mac, I don't know if we have the same issue on other platforms.

I'm not reproducing this locally on my Mac. I have a few follow-up questions if you have time:

  • Was this an artifact build, or a full build?
  • If it was an artifact build did you have: ac_add_options --enable-artifact-build-symbols set up?
  • Does this symbolication error reproduce with ./mach talos-test --activeTests damp --subtests custom.webconsole --cycles 1 --tppagecycles 1 --geckoProfile --geckoProfileEntries 100000000?
  • If that reproduces, does it reproduce on talos-test before Bug 1628073?
Flags: needinfo?(florian)

(In reply to Greg Tatum [:gregtatum] from comment #1)

I'm not reproducing this locally on my Mac.
Thanks for looking at this!

I have a few follow-up questions if you have time:

  • Was this an artifact build, or a full build?

Artifact build.

  • If it was an artifact build did you have: ac_add_options --enable-artifact-build-symbols set up?

No, I didn't. After adding this to my mozconfig and running mach build again, running mach mochitest --profiler produces profiles with correct symbols.

  • Does this symbolication error reproduce with ./mach talos-test --activeTests damp --subtests custom.webconsole --cycles 1 --tppagecycles 1 --geckoProfile --geckoProfileEntries 100000000?
  • If that reproduces, does it reproduce on talos-test before Bug 1628073?

mach talos-test fails for me for another reason.

Do we know why capturing a profile from Firefox itself results in correct symbols? Is it only because my artifact build happens to be from a revision that's on mozilla-central (not autoland) where symbols are automatically uploaded to the symbol server?
Should our local symbolication also ask the symbol server when symbols aren't available locally? If not, should we print a warning in the terminal that symbolication of libxul failed because symbols were missing, and suggest adding --enable-artifact-build-symbols ?

Flags: needinfo?(florian)
Summary: Profiles captured from mach mochitest --profiler have mangled symbol names → Profiles captured from mach mochitest --profiler have mangled symbol names on artifact builds without --enable-artifact-build-symbols

I tried capturing a profile on a linux artifact build without --enable-artifact-build-symbols in the mozconfig, and the symbols were fine.

There is some logic there to contact the symbol server, but it's been hard for me to reason with the code. I'm not 100% confident that this is --enable-artifact-build-symbols. The symbolication code should contact the symbol server, but that could fail for some reason.

The severity field is not set for this bug.
:gerald, could you have a look please?

For more information, please visit auto_nag documentation.

Flags: needinfo?(gsquelart)
Severity: -- → S3
Flags: needinfo?(gsquelart)

The patch in bug 1671126 fixes mac-specific symbolication code that doesn't run for my artifact build with --enable-artifact-build-symbols so that might be the explanation of this bug too.

See Also: → 1671126
You need to log in before you can comment on or make changes to this bug.