Closed Bug 1491236 Opened Last year Closed Last year

Permafail of GTest on Linux 32-bit LulIntegration.unwind_consistency | Value of: nTestsPassed == nTests when Fx64 becomes beta on 2018-10-15


(Core :: Gecko Profiler, defect)

Not set



Tracking Status
firefox-esr60 --- unaffected
firefox62 --- unaffected
firefox63 --- unaffected
firefox64 + verified


(Reporter: aryx, Assigned: glandium)




(1 file)

central as beta simulation:,busted,exception&revision=dabcb3ffcca482f2c99467a181f647dc92382d32&selectedJob=198875271


[task 2018-09-12T14:34:34.964Z] 14:34:34     INFO -  TEST-START | LulIntegration.unwind_consistency
[task 2018-09-12T14:34:35.710Z] 14:34:35  WARNING -  TEST-UNEXPECTED-FAIL | LulIntegration.unwind_consistency | Value of: nTestsPassed == nTests
[task 2018-09-12T14:34:35.711Z] 14:34:35     INFO -    Actual: false
[task 2018-09-12T14:34:35.711Z] 14:34:35     INFO -  Expected: true
[task 2018-09-12T14:34:35.711Z] 14:34:35     INFO -  Not all tests passed @ /builds/worker/workspace/build/src/tools/profiler/tests/gtest/LulTest.cpp:48
[task 2018-09-12T14:34:35.728Z] 14:34:35  WARNING -  TEST-UNEXPECTED-FAIL | LulIntegration.unwind_consistency | test completed (time: 759ms)
Flags: needinfo?(mh+mozilla)

>  // [...] This is all
>  // somewhat dubious in the sense that a sufficiently clever compiler
>  // (clang, for one) can figure out that space[] is unused and delete
>  // it from the frame.  Hence the somewhat elaborate hoop jumping to
>  // fill it up before the call and to at least appear to use the
>  // value afterwards.
This is the same as bug 1480706, except we don't have frame pointers. The discovery back then is that while GCC defaults to emit eh_frame sections on x86, clang doesn't. Enabling the LUL frame pointer chasing code was enough on central because we have frame pointers there. But we don't have them on beta. So we need eh_frames.
Assignee: nobody → mh+mozilla
Flags: needinfo?(mh+mozilla)
We were already always enabling it on builds with frame pointers on
Android. We now extend this to builds without frame pointers, helping
with client-side stacktracing for crashes.

It's also the default on many platforms, such as x86-64, whether frame
pointer are enabled or not and on x86 with GCC. Somehow, it's not the
case for x86 with clang, so this makes clang builds the same as GCC
builds in that regard.

On ARM, we were always omitting frame pointers because of a GCC bug, but
we've not been using GCC for Android builds for a long time (and the GCC
bug was actually fixed in 4.7 and backported to 4.6, making it fixed in
all versions of GCC we support).
Comment on attachment 9009820 [details]
Bug 1491236 - Always enable unwind tables on *nix

Nathan Froyd [:froydnj] has approved the revision.
Attachment #9009820 - Flags: review+
Pushed by
Always enable unwind tables on *nix r=froydnj
Closed: Last year
Resolution: --- → FIXED
Target Milestone: --- → mozilla64
You need to log in before you can comment on or make changes to this bug.