Closed Bug 1507123 Opened 7 years ago Closed 7 years ago

Assertion failure while merging stacks during recording a profile

Categories

(Core :: Gecko Profiler, defect)

defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 1503640
mozilla65

People

(Reporter: canova, Unassigned)

Details

There is a crash during recording the profile with the (old) performance panel inside devtools. Tried to reproduce it with the new performance panel but it doesn't happen. It's probably we are streaming the profiler data on the old panel. When we debug that crash we found out that it's an assertion failure. We are hitting an assertion inside JSJitProfilingFrameIterator::fixBaselineReturnAddress. That happens whenw we try to merge stacks with `MergeStacks` function. This doesn't happen in every website. STR: 1. Open https://www.somethingpositive.net/index.html 2. Start recording with the performance panel. 3. Scroll inside the website a bit and you'll see the tab crash. This is the assertion and the backtrace: Assertion failure: slotInfo.isStackSynced(), at /Users/nazimcanaltinova/projects/gecko/js/src/jit/JSJitFrameIter.cpp:673 Process 9211 stopped * thread #83, name = 'SamplerThread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0) frame #0: 0x00000001086ec350 XUL`js::jit::JSJitProfilingFrameIterator::fixBaselineReturnAddress(this=0x0000700010b1fca0) at JSJitFrameIter.cpp:673 [opt] 670 PCMappingSlotInfo slotInfo; 671 JSScript* script = bl->script(); 672 returnAddressToFp_ = script->baselineScript()->nativeCodeForPC(script, override, &slotInfo); -> 673 MOZ_ASSERT(slotInfo.isStackSynced()); 674 return; 675 } 676 } Target 0: (firefox) stopped. (lldb) bt * thread #83, name = 'SamplerThread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0) * frame #0: 0x00000001086ec350 XUL`js::jit::JSJitProfilingFrameIterator::fixBaselineReturnAddress(this=0x0000700010b1fca0) at JSJitFrameIter.cpp:673 [opt] frame #1: 0x0000000107ff387e XUL`JS::ProfilingFrameIterator::operator++(this=0x0000700010b1fc78) at Stack.cpp:2002 [opt] frame #2: 0x000000010777407f XUL`MergeStacks(aFeatures=0, aIsSynchronous=false, aRegisteredThread=0x00000001029797b0, aRegs=<unavailable>, aNativeStack=0x0000700010b2bd38, aCollector=0x0000700010b2fd40) at platform.cpp:942 [opt] frame #3: 0x0000000107773ba6 XUL`DoSharedSample(aLock=<unavailable>, aIsSynchronous=false, aRegisteredThread=0x00000001029797b0, aNow=<unavailable>, aRegs=0x0000700010b2fe58, aLastSample=0x000000013d5bf1c0, aBuffer=0x0000000159aefb00) at platform.cpp:1467 [opt] frame #4: 0x0000000107763cd1 XUL`SamplerThread::Run() [inlined] DoPeriodicSample(aRegisteredThread=<unavailable>, aProfiledThreadData=0x000000013d5bf190, aNow=0x0000042b2fc8a7dc, aRegs=0x0000000107e2a21c) at platform.cpp:1499 [opt] frame #5: 0x0000000107763ca6 XUL`SamplerThread::Run() [inlined] SamplerThread::Run(aRegs=0x0000000107e2a21c)::$_7::operator()(Registers const&) const at platform.cpp:2263 [opt] frame #6: 0x0000000107763ca6 XUL`SamplerThread::Run() at platform-macos.cpp:133 [opt] frame #7: 0x0000000107763c71 XUL`SamplerThread::Run(this=<unavailable>) at platform.cpp:2261 [opt] frame #8: 0x0000000107764699 XUL`ThreadEntry(aArg=<unavailable>) at platform-macos.cpp:158 [opt] frame #9: 0x00007fff6092b339 libsystem_pthread.dylib`_pthread_body + 126 frame #10: 0x00007fff6092e2a7 libsystem_pthread.dylib`_pthread_start + 70 frame #11: 0x00007fff6092a445 libsystem_pthread.dylib`thread_start + 13
Moving to Gecko Profiler component.
Component: Performance Tools (Profiler/Timeline) → Gecko Profiler
Product: DevTools → Core
Target Milestone: --- → mozilla65
Version: unspecified → Trunk
Btw, I came across this assertion with the Gecko-Profiler-Addon as well. It's not performance panel only. I hit that on nytimes.com while the profiler is active.
Summary: Assertion failure while merging stacks during recording profile with the performance panel → Assertion failure while merging stacks during recording a profile
It looks like this is a duplicate of Bug 1503640. Closing this.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.