Closed Bug 1491236 Opened Last year Closed Last year
Permafail of GTest on Linux 32-bit Lul
Integration .unwind _consistency | Value of: n Tests Passed == n Tests when Fx64 becomes beta on 2018-10-15
central as beta simulation: https://treeherder.mozilla.org/#/jobs?repo=try&resultStatus=testfailed,busted,exception&revision=dabcb3ffcca482f2c99467a181f647dc92382d32&selectedJob=198875271 Log: https://treeherder.mozilla.org/logviewer.html#?job_id=198875271&repo=try [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)
https://hg.mozilla.org/mozilla-central/annotate/645939049d7e41e634ab7a315ab99a422db080bf/tools/profiler/lul/LulMain.cpp#l1832 > // [...] 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
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 firstname.lastname@example.org: https://hg.mozilla.org/integration/autoland/rev/303fb0953da3 Always enable unwind tables on *nix r=froydnj
Depends on: 1492831
Verified fixed with today's beta simulations: https://treeherder.mozilla.org/#/jobs?repo=try&resultStatus=testfailed,busted,exception,retry,usercancel,runnable&revision=a2c028b637b963e53c4a3399e063f80b87db4f20
You need to log in before you can comment on or make changes to this bug.