Closed Bug 1494435 Opened 6 years ago Closed 5 years ago

Hang in XUL`mozilla::layers::PCompositorBridgeChild::SendFlushRendering() when reconnecting external monitor

Categories

(Core :: Graphics, defect, P3)

defect

Tracking

()

RESOLVED INCOMPLETE

People

(Reporter: nalexander, Assigned: jgilbert)

Details

(Keywords: hang)

Attachments

(1 obsolete file)

I have a late 2013 MacBook Pro running High Sierra, 10.13.6. Frequently when I plug in my external monitor (a Dell), Firefox (Nightly) hangs. jesup suggested I capture stacks for the main and Compositor processes, which I have done below. This looks like an issue in the underlying graphics driver (GeForce`...) but perhaps there is something that can be done to work-around. I can provide more details as necessary: I witness this hang perhaps 1/3 of the time I reconnect this monitor. $ ~/M/gecko lldb There is a .lldbinit file in the current directory which is not being read. To silence this warning without sourcing in the local .lldbinit, add the following to the lldbinit file in your home directory: settings set target.load-cwd-lldbinit false To allow lldb to source .lldbinit files in the current working directory, set the value of this variable to true. Only do so if you understand and accept the security risk. (lldb) process attach 37840 error: Invalid arguments for 'process attach'. Usage: process attach <cmd-options> (lldb) process attach error: attach failed: no process specified, create a target with a file, or specify the --pid or --name (lldb) process attach --pid 37840 Process 37840 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP frame #0: 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10 libsystem_kernel.dylib`__psynch_cvwait: -> 0x7fff563bba16 <+10>: jae 0x7fff563bba20 ; <+20> 0x7fff563bba18 <+12>: movq %rax, %rdi 0x7fff563bba1b <+15>: jmp 0x7fff563b2ae9 ; cerror_nocancel 0x7fff563bba20 <+20>: retq Target 0: (firefox) stopped. Executable module set to "/Applications/FirefoxNightly.app/Contents/MacOS/firefox". Architecture set to: x86_64h-apple-macosx. (lldb) bt * thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP * frame #0: 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10 frame #1: 0x00007fff56584589 libsystem_pthread.dylib`_pthread_cond_wait + 732 frame #2: 0x000000010c6a265f libmozglue.dylib`mozilla::detail::ConditionVariableImpl::wait_for(mozilla::detail::MutexImpl&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&) + 31 frame #3: 0x0000000113f88990 XUL`mozilla::ipc::MessageChannel::Send(IPC::Message*, IPC::Message*) + 2928 frame #4: 0x00000001143ba08f XUL`mozilla::layers::PCompositorBridgeChild::SendFlushRendering() + 591 frame #5: 0x0000000114956270 XUL`mozilla::layers::ClientLayerManager::FlushRendering() + 112 frame #6: 0x0000000116817bcc XUL`nsView::PaintWindow(nsIWidget*, mozilla::gfx::IntRegionTyped<mozilla::LayoutDevicePixel>) + 1004 frame #7: 0x000000011686946a XUL`nsChildView::PaintWindow(mozilla::gfx::IntRegionTyped<mozilla::LayoutDevicePixel>) + 122 frame #8: 0x0000000116878068 XUL`-[ChildView drawUsingOpenGL] + 312 frame #9: 0x0000000116876bb8 XUL`-[ChildView drawRect:] + 88 frame #10: 0x00007fff2c26df29 AppKit`_NSViewDrawRect + 83 frame #11: 0x00007fff2bb0673c AppKit`-[NSView _drawRect:clip:] + 1819 frame #12: 0x00007fff2bb4eb52 AppKit`-[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 1735 frame #13: 0x00007fff2bb4f01f AppKit`-[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2964 frame #14: 0x00007fff2bb4f01f AppKit`-[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2964 frame #15: 0x00007fff2bb04656 AppKit`-[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 938 frame #16: 0x00007fff2bb03ddb AppKit`-[NSThemeFrame _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 327 frame #17: 0x00007fff2c26f4e0 AppKit`-[NSView _oldDisplayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] + 2051 frame #18: 0x00007fff2bb02e5d AppKit`-[NSView _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] + 253 frame #19: 0x00007fff2baff0b4 AppKit`-[NSView displayIfNeeded] + 1581 frame #20: 0x00007fff2bafea52 AppKit`-[NSWindow displayIfNeeded] + 321 frame #21: 0x00007fff2c29f60d AppKit`___NSWindowGetDisplayCycleObserver_block_invoke.5902 + 308 frame #22: 0x00007fff2bafe55e AppKit`__37+[NSDisplayCycle currentDisplayCycle]_block_invoke + 695 frame #23: 0x00007fff397958c7 QuartzCore`CA::Transaction::run_commit_handlers(CATransactionPhase) + 49 frame #24: 0x00007fff39794389 QuartzCore`CA::Transaction::commit() + 171 frame #25: 0x00007fff2c2b6a72 AppKit`__65+[CATransaction(NSCATransaction) NS_setFlushesWithDisplayRefresh]_block_invoke + 283 frame #26: 0x00007fff2e442417 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23 frame #27: 0x00007fff2e44233f CoreFoundation`__CFRunLoopDoObservers + 527 frame #28: 0x00007fff2e4248b8 CoreFoundation`__CFRunLoopRun + 1240 frame #29: 0x00007fff2e424153 CoreFoundation`CFRunLoopRunSpecific + 483 frame #30: 0x00007fff2d70ed96 HIToolbox`RunCurrentEventLoopInMode + 286 frame #31: 0x00007fff2d70ea0f HIToolbox`ReceiveNextEventCommon + 366 frame #32: 0x00007fff2d70e884 HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 64 frame #33: 0x00007fff2b9bfa73 AppKit`_DPSNextEvent + 2085 frame #34: 0x00007fff2c155e34 AppKit`-[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 3044 frame #35: 0x00000001168cd705 XUL`-[GeckoNSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 293 frame #36: 0x00007fff2b9b4885 AppKit`-[NSApplication run] + 764 frame #37: 0x00000001168cef3d XUL`nsAppShell::Run() + 397 frame #38: 0x0000000117d9abe9 XUL`nsAppStartup::Run() + 73 frame #39: 0x0000000117ef3dd2 XUL`XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&) + 5922 frame #40: 0x0000000117f000b7 XUL`mozilla::BootstrapImpl::XRE_main(int, char**, mozilla::BootstrapConfig const&) + 311 frame #41: 0x000000010c68d2e0 firefox`main + 1072 frame #42: 0x00007fff5626b015 libdyld.dylib`start + 1 (lldb) thread list Process 37840 stopped * thread #1: tid = 0x4ef3f5, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP thread #2: tid = 0x4ef42e, 0x00007fff563b220a libsystem_kernel.dylib`mach_msg_trap + 10 thread #3: tid = 0x4ef43e, 0x00007fff563bcbea libsystem_kernel.dylib`kevent + 10, name = 'Gecko_IOThread' thread #4: tid = 0x4ef442, 0x00007fff563b220a libsystem_kernel.dylib`mach_msg_trap + 10 thread #5: tid = 0x4ef443, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'Timer' thread #6: tid = 0x4ef445, 0x00007fff563bbcf2 libsystem_kernel.dylib`__select + 10, name = 'Socket Thread' thread #7: tid = 0x4ef44b, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'JS Watchdog' thread #8: tid = 0x4ef44c, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'JS Helper' thread #9: tid = 0x4ef44d, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'JS Helper' thread #10: tid = 0x4ef44e, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'JS Helper' thread #11: tid = 0x4ef44f, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'JS Helper' thread #12: tid = 0x4ef450, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'JS Helper' thread #13: tid = 0x4ef451, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'JS Helper' thread #14: tid = 0x4ef452, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'JS Helper' thread #15: tid = 0x4ef453, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'JS Helper' thread #16: tid = 0x4ef455, 0x00007fff563b220a libsystem_kernel.dylib`mach_msg_trap + 10 thread #17: tid = 0x4ef489, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'BHMgr Monitor' thread #18: tid = 0x4ef48a, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'BHMgr Processor' thread #19: tid = 0x4ef4ba, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'Cache2 I/O' thread #20: tid = 0x4ef4bc, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'Cookie' thread #21: tid = 0x4ef4c5, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'IPDL Background' thread #22: tid = 0x4ef502, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'GMPThread' thread #23: tid = 0x4ef506, 0x00007fff563bbd82 libsystem_kernel.dylib`__semwait_signal + 10, name = 'Compositor' thread #24: tid = 0x4ef507, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'VRListener' thread #25: tid = 0x4ef50c, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'ImgDecoder #1' thread #26: tid = 0x4ef50d, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'ImageIO' thread #27: tid = 0x4ef51d, 0x00007fff563b220a libsystem_kernel.dylib`mach_msg_trap + 10, name = 'com.apple.NSEventThread' thread #28: tid = 0x4ef538, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'DOM Worker' thread #29: tid = 0x4ef539, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'StyleThread#0' thread #30: tid = 0x4ef53a, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'StyleThread#1' thread #31: tid = 0x4ef53b, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'StyleThread#2' thread #32: tid = 0x4ef53c, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'StyleThread#3' thread #33: tid = 0x4ef53d, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'StyleThread#4' thread #34: tid = 0x4ef53e, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'StyleThread#5' thread #35: tid = 0x4ef543, 0x00007fff563b220a libsystem_kernel.dylib`mach_msg_trap + 10 thread #36: tid = 0x4ef554, 0x00007fff563b220a libsystem_kernel.dylib`mach_msg_trap + 10 thread #37: tid = 0x4ef559, 0x00007fff563b220a libsystem_kernel.dylib`mach_msg_trap + 10 thread #38: tid = 0x4ef55f, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'ImageBr~geChild' thread #39: tid = 0x4ef564, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'ProcessHangMon' thread #40: tid = 0x4ef5ae, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'DataStorage' thread #41: tid = 0x4ef5b0, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'URL Classifier' thread #42: tid = 0x4ef5b1, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'Classif~ Update' thread #43: tid = 0x4ef5b6, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'Cache I/O' thread #44: tid = 0x4ef5be, 0x00007fff563b220a libsystem_kernel.dylib`mach_msg_trap + 10 thread #45: tid = 0x4ef5d7, 0x00007fff563b220a libsystem_kernel.dylib`mach_msg_trap + 10 thread #46: tid = 0x4ef5ef, 0x00007fff563b220a libsystem_kernel.dylib`mach_msg_trap + 10 thread #47: tid = 0x4ef63a, 0x00007fff563b220a libsystem_kernel.dylib`mach_msg_trap + 10 thread #48: tid = 0x4ef660, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'mozStorage #1' thread #49: tid = 0x4ef665, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'mozStorage #2' thread #50: tid = 0x4ef675, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'localStorage DB' thread #51: tid = 0x4ef676, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'ImgDecoder #2' thread #52: tid = 0x4ef67a, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'mozStorage #3' thread #53: tid = 0x4ef685, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'QuotaManager IO' thread #54: tid = 0x4ef68d, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'mozStorage #4' thread #55: tid = 0x4ef6ab, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'SaveScripts' thread #56: tid = 0x4ef6b8, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'DOM Worker' thread #57: tid = 0x4ef6b9, 0x00007fff563b220a libsystem_kernel.dylib`mach_msg_trap + 10 thread #58: tid = 0x4ef6e3, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'mozStorage #5' thread #59: tid = 0x4ef9a9, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'VideoCapture' thread #60: tid = 0x4f09e7, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'mozStorage #6' thread #61: tid = 0x4f11ba, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'mozStorage #7' thread #62: tid = 0x6118dc, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'mozStorage #8' thread #63: tid = 0x6f4c8f, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'DNS Res~ver #95' thread #64: tid = 0x6fb004, 0x00007fff563b220a libsystem_kernel.dylib`mach_msg_trap + 10, queue = 'com.apple.notify.background.local.notification' thread #65: tid = 0x7095f8, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'ImgDecoder #19' thread #66: tid = 0x70eae3, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'DNS Res~ver #99' thread #67: tid = 0x70f31d, 0x00007fff563bc28a libsystem_kernel.dylib`__workq_kernreturn + 10 thread #68: tid = 0x70f541, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'DOM Worker' thread #69: tid = 0x70f54b, 0x00007fff563b220a libsystem_kernel.dylib`mach_msg_trap + 10 thread #70: tid = 0x70f551, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'StreamT~s #3130' thread #71: tid = 0x70f56b, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'DOMCacheThread' thread #72: tid = 0x70fd1b, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'CVDisplayLink' thread #73: tid = 0x71012e, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'IndexedDB #924' (lldb) thread select 23 * thread #23, name = 'Compositor' frame #0: 0x00007fff563bbd82 libsystem_kernel.dylib`__semwait_signal + 10 libsystem_kernel.dylib`__semwait_signal: -> 0x7fff563bbd82 <+10>: jae 0x7fff563bbd8c ; <+20> 0x7fff563bbd84 <+12>: movq %rax, %rdi 0x7fff563bbd87 <+15>: jmp 0x7fff563b2b0e ; cerror 0x7fff563bbd8c <+20>: retq (lldb) bt * thread #23, name = 'Compositor' * frame #0: 0x00007fff563bbd82 libsystem_kernel.dylib`__semwait_signal + 10 frame #1: 0x00007fff56336724 libsystem_c.dylib`nanosleep + 199 frame #2: 0x00007fff56336618 libsystem_c.dylib`usleep + 53 frame #3: 0x00007fff290d0b26 GeForceGLDriver`___lldb_unnamed_symbol17958$$GeForceGLDriver + 128 frame #4: 0x00007fff28eb5988 GeForceGLDriver`___lldb_unnamed_symbol10627$$GeForceGLDriver + 1843 frame #5: 0x00007fff28eb49fc GeForceGLDriver`___lldb_unnamed_symbol10616$$GeForceGLDriver + 134 frame #6: 0x00007fff28ecaf7d GeForceGLDriver`___lldb_unnamed_symbol10879$$GeForceGLDriver + 453 frame #7: 0x00007fff28f0f4b4 GeForceGLDriver`___lldb_unnamed_symbol11635$$GeForceGLDriver + 530 frame #8: 0x00007fff28f0f1e9 GeForceGLDriver`___lldb_unnamed_symbol11634$$GeForceGLDriver + 111 frame #9: 0x00007fff46ea5ffd libGPUSupportMercury.dylib`gldDestroyTexture + 20 frame #10: 0x00007fff28ef6ace GeForceGLDriver`gldDestroyTexture + 218 frame #11: 0x00007fff37db4cbe libGFXShared.dylib`gfxDestroyPluginTexture + 60 frame #12: 0x00007fff38a73821 GLEngine`gleFreeTextureObject + 36 frame #13: 0x00007fff38a3f947 GLEngine`gleUnbindAndFreeFramebufferObject + 182 frame #14: 0x00007fff3898846c GLEngine`glDeleteFramebuffersEXT_Exec + 270 frame #15: 0x0000000114800341 XUL`mozilla::gl::GLContext::fDeleteFramebuffers(int, unsigned int const*) + 241 frame #16: 0x0000000114880493 XUL`mozilla::layers::CompositingRenderTargetOGL::~CompositingRenderTargetOGL() + 371 frame #17: 0x000000011488052e XUL`mozilla::layers::CompositingRenderTargetOGL::~CompositingRenderTargetOGL() + 14 frame #18: 0x0000000114983690 XUL`mozilla::layers::ContainerLayerComposite::~ContainerLayerComposite() + 80 frame #19: 0x000000011487bc81 XUL`mozilla::layers::ContainerLayerProperties::~ContainerLayerProperties() + 177 frame #20: 0x000000011487bc25 XUL`mozilla::layers::ContainerLayerProperties::~ContainerLayerProperties() + 85 frame #21: 0x000000011499ff1b XUL`mozilla::layers::LayerManagerComposite::UpdateAndRender() + 3835 frame #22: 0x000000011499ee6d XUL`mozilla::layers::LayerManagerComposite::EndTransaction(mozilla::TimeStamp const&, mozilla::layers::LayerManager::EndTransactionFlags) + 221 frame #23: 0x00000001149bb94d XUL`mozilla::layers::CompositorBridgeParent::CompositeToTarget(mozilla::gfx::DrawTarget*, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const*) + 861 frame #24: 0x00000001149c5c29 XUL`mozilla::layers::CompositorVsyncScheduler::Composite(mozilla::TimeStamp) + 121 frame #25: 0x00000001149de17b XUL`mozilla::detail::RunnableMethodImpl<mozilla::layers::CompositorVsyncScheduler*, void (mozilla::layers::CompositorVsyncScheduler::*)(mozilla::TimeStamp), true, (mozilla::RunnableKind)1, mozilla::TimeStamp>::Run() + 43 frame #26: 0x0000000113f50318 XUL`MessageLoop::DoWork() + 1880 frame #27: 0x0000000113f511e2 XUL`base::MessagePumpDefault::Run(base::MessagePump::Delegate*) + 1234 frame #28: 0x0000000113f5939c XUL`base::Thread::ThreadMain() + 412 frame #29: 0x0000000113f54da7 XUL`ThreadFunc(void*) (.llvm.7985238714462437509) + 23 frame #30: 0x00007fff56583661 libsystem_pthread.dylib`_pthread_body + 340 frame #31: 0x00007fff5658350d libsystem_pthread.dylib`_pthread_start + 377 frame #32: 0x00007fff56582bf9 libsystem_pthread.dylib`thread_start + 13 (lldb) jesup suggested I capture stacks from the main thread of the GPU process, but partial output of `pstree` suggests there is no GPU process: | | \-+= 09666 nalexander /Applications/Xcode.app/Contents/Developer/usr/bin/lldb | | \-+= 09695 nalexander /Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Resources/debugserver --native-regs --setsid --reverse-connect 127.0.0.1:51512 | | \-+= 37840 nalexander /Applications/FirefoxNightly.app/Contents/MacOS/firefox -foreground | | |--- 37849 nalexander /Applications/FirefoxNightly.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container -childID 1 -isForBrowser -prefsLen 1 -prefMapSize 219124 -schedulerPrefs 0001,2 -parentBuildID 20180924100354 -greomni /Applications/FirefoxNightly.app/Contents/Resources/omni.ja -appomni /Applications/FirefoxNightly.app/Contents/Resources/browser/omni.ja -appdir /Applications/FirefoxNightly.app/Contents/Resources/browser -profile /Users/nalexander/Library/Application Support/Firefox/Profiles/eegtg4eo.default-1361818841756 37840 gecko-crash-server-pipe.37840 org.mozilla.machname.793982531 tab | | |--- 37854 nalexander /Applications/FirefoxNightly.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container -childID 2 -isForBrowser -prefsLen 129 -prefMapSize 219124 -schedulerPrefs 0001,2 -parentBuildID 20180924100354 -greomni /Applications/FirefoxNightly.app/Contents/Resources/omni.ja -appomni /Applications/FirefoxNightly.app/Contents/Resources/browser/omni.ja -appdir /Applications/FirefoxNightly.app/Contents/Resources/browser -profile /Users/nalexander/Library/Application Support/Firefox/Profiles/eegtg4eo.default-1361818841756 37840 gecko-crash-server-pipe.37840 org.mozilla.machname.469611269 tab | | |--- 37855 nalexander /Applications/FirefoxNightly.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container -childID 3 -isForBrowser -prefsLen 129 -prefMapSize 219124 -schedulerPrefs 0001,2 -parentBuildID 20180924100354 -greomni /Applications/FirefoxNightly.app/Contents/Resources/omni.ja -appomni /Applications/FirefoxNightly.app/Contents/Resources/browser/omni.ja -appdir /Applications/FirefoxNightly.app/Contents/Resources/browser -profile /Users/nalexander/Library/Application Support/Firefox/Profiles/eegtg4eo.default-1361818841756 37840 gecko-crash-server-pipe.37840 org.mozilla.machname.1961524466 tab | | |--- 37856 nalexander /Applications/FirefoxNightly.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container -childID 4 -isForBrowser -prefsLen 129 -prefMapSize 219124 -schedulerPrefs 0001,2 -parentBuildID 20180924100354 -greomni /Applications/FirefoxNightly.app/Contents/Resources/omni.ja -appomni /Applications/FirefoxNightly.app/Contents/Resources/browser/omni.ja -appdir /Applications/FirefoxNightly.app/Contents/Resources/browser -profile /Users/nalexander/Library/Application Support/Firefox/Profiles/eegtg4eo.default-1361818841756 37840 gecko-crash-server-pipe.37840 org.mozilla.machname.2124581531 tab | | \--- 37857 nalexander /Applications/FirefoxNightly.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container -childID 5 -isForBrowser -prefsLen 223 -prefMapSize 219124 -schedulerPrefs 0001,2 -parentBuildID 20180924100354 -greomni /Applications/FirefoxNightly.app/Contents/Resources/omni.ja -appomni /Applications/FirefoxNightly.app/Contents/Resources/browser/omni.ja -appdir /Applications/FirefoxNightly.app/Contents/Resources/browser -profile /Users/nalexander/Library/Application Support/Firefox/Profiles/eegtg4eo.default-1361818841756 37840 gecko-crash-server-pipe.37840 org.mozilla.machname.1051263134 tab
Pretty sure this is the same stack trace: (lldb) process attach --name firefox Process 10053 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP frame #0: 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10 libsystem_kernel.dylib`__psynch_cvwait: -> 0x7fff563bba16 <+10>: jae 0x7fff563bba20 ; <+20> 0x7fff563bba18 <+12>: movq %rax, %rdi 0x7fff563bba1b <+15>: jmp 0x7fff563b2ae9 ; cerror_nocancel 0x7fff563bba20 <+20>: retq Target 0: (firefox) stopped. Executable module set to "/Applications/FirefoxNightly.app/Contents/MacOS/firefox". Architecture set to: x86_64h-apple-macosx. (lldb) bt * thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP * frame #0: 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10 frame #1: 0x00007fff56584589 libsystem_pthread.dylib`_pthread_cond_wait + 732 frame #2: 0x000000010a54f65f libmozglue.dylib`mozilla::detail::ConditionVariableImpl::wait_for(mozilla::detail::MutexImpl&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&) + 31 frame #3: 0x00000001104bac90 XUL`mozilla::ipc::MessageChannel::Send(IPC::Message*, IPC::Message*) + 2928 frame #4: 0x00000001108ec7ef XUL`mozilla::layers::PCompositorBridgeChild::SendFlushRendering() + 591 frame #5: 0x0000000110e88560 XUL`mozilla::layers::ClientLayerManager::FlushRendering() + 112 frame #6: 0x0000000112d4ac4c XUL`nsView::PaintWindow(nsIWidget*, mozilla::gfx::IntRegionTyped<mozilla::LayoutDevicePixel>) + 1004 frame #7: 0x0000000112d9c47a XUL`nsChildView::PaintWindow(mozilla::gfx::IntRegionTyped<mozilla::LayoutDevicePixel>) + 122 frame #8: 0x0000000112dab078 XUL`-[ChildView drawUsingOpenGL] + 312 frame #9: 0x0000000112da9bc8 XUL`-[ChildView drawRect:] + 88 frame #10: 0x00007fff2c26df29 AppKit`_NSViewDrawRect + 83 frame #11: 0x00007fff2bb0673c AppKit`-[NSView _drawRect:clip:] + 1819 frame #12: 0x00007fff2bb4eb52 AppKit`-[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 1735 frame #13: 0x00007fff2bb4f01f AppKit`-[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2964 frame #14: 0x00007fff2bb4f01f AppKit`-[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2964 frame #15: 0x00007fff2bb04656 AppKit`-[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 938 frame #16: 0x00007fff2bb03ddb AppKit`-[NSThemeFrame _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 327 frame #17: 0x00007fff2c26f4e0 AppKit`-[NSView _oldDisplayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] + 2051 frame #18: 0x00007fff2bb02e5d AppKit`-[NSView _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] + 253 frame #19: 0x00007fff2baff0b4 AppKit`-[NSView displayIfNeeded] + 1581 frame #20: 0x00007fff2bafea52 AppKit`-[NSWindow displayIfNeeded] + 321 frame #21: 0x00007fff2c29f60d AppKit`___NSWindowGetDisplayCycleObserver_block_invoke.5902 + 308 frame #22: 0x00007fff2bafe55e AppKit`__37+[NSDisplayCycle currentDisplayCycle]_block_invoke + 695 frame #23: 0x00007fff397958c7 QuartzCore`CA::Transaction::run_commit_handlers(CATransactionPhase) + 49 frame #24: 0x00007fff39794389 QuartzCore`CA::Transaction::commit() + 171 frame #25: 0x00007fff2c2b6a72 AppKit`__65+[CATransaction(NSCATransaction) NS_setFlushesWithDisplayRefresh]_block_invoke + 283 frame #26: 0x00007fff2e442417 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23 frame #27: 0x00007fff2e44233f CoreFoundation`__CFRunLoopDoObservers + 527 frame #28: 0x00007fff2e4248b8 CoreFoundation`__CFRunLoopRun + 1240 frame #29: 0x00007fff2e424153 CoreFoundation`CFRunLoopRunSpecific + 483 frame #30: 0x00007fff2d70ed96 HIToolbox`RunCurrentEventLoopInMode + 286 frame #31: 0x00007fff2d70ea0f HIToolbox`ReceiveNextEventCommon + 366 frame #32: 0x00007fff2d70e884 HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 64 frame #33: 0x00007fff2b9bfa73 AppKit`_DPSNextEvent + 2085 frame #34: 0x00007fff2c155e34 AppKit`-[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 3044 frame #35: 0x0000000112e00535 XUL`-[GeckoNSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 293 frame #36: 0x00007fff2b9b4885 AppKit`-[NSApplication run] + 764 frame #37: 0x0000000112e01d6d XUL`nsAppShell::Run() + 397 frame #38: 0x00000001142ca749 XUL`nsAppStartup::Run() + 73 frame #39: 0x00000001144053d1 XUL`XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&) + 5937 frame #40: 0x0000000114411cb9 XUL`mozilla::BootstrapImpl::XRE_main(int, char**, mozilla::BootstrapConfig const&) + 313 frame #41: 0x000000010a5342e0 firefox`main + 1072 frame #42: 0x00007fff5626b015 libdyld.dylib`start + 1 frame #43: 0x00007fff5626b015 libdyld.dylib`start + 1 (lldb) thread list Process 10053 stopped * thread #1: tid = 0x7246df, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP thread #2: tid = 0x7246ec, 0x00007fff563b220a libsystem_kernel.dylib`mach_msg_trap + 10 thread #3: tid = 0x7246fb, 0x00007fff563bcbea libsystem_kernel.dylib`kevent + 10, name = 'Gecko_IOThread' thread #4: tid = 0x7246fc, 0x00007fff563b220a libsystem_kernel.dylib`mach_msg_trap + 10 thread #5: tid = 0x7246fe, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'Timer' thread #6: tid = 0x7246ff, 0x00007fff563bbcf2 libsystem_kernel.dylib`__select + 10, name = 'Socket Thread' thread #7: tid = 0x724700, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'JS Watchdog' thread #8: tid = 0x724701, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'JS Helper' thread #9: tid = 0x724702, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'JS Helper' thread #10: tid = 0x724703, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'JS Helper' thread #11: tid = 0x724704, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'JS Helper' thread #12: tid = 0x724705, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'JS Helper' thread #13: tid = 0x724706, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'JS Helper' thread #14: tid = 0x724707, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'JS Helper' thread #15: tid = 0x724708, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'JS Helper' thread #16: tid = 0x72470a, 0x00007fff563b220a libsystem_kernel.dylib`mach_msg_trap + 10 thread #17: tid = 0x72470d, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'BHMgr Monitor' thread #18: tid = 0x72470e, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'BHMgr Processor' thread #19: tid = 0x724713, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'Cache2 I/O' thread #20: tid = 0x724714, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'Cookie' thread #21: tid = 0x72471b, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'IPDL Background' thread #22: tid = 0x724768, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'GMPThread' thread #23: tid = 0x72476f, 0x00007fff563bbd82 libsystem_kernel.dylib`__semwait_signal + 10, name = 'Compositor' thread #24: tid = 0x724770, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'VRListener' thread #25: tid = 0x724778, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'ImgDecoder #1' thread #26: tid = 0x724779, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'ImageIO' thread #27: tid = 0x724792, 0x00007fff563b220a libsystem_kernel.dylib`mach_msg_trap + 10, name = 'com.apple.NSEventThread' thread #28: tid = 0x7247b7, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'StyleThread#0' thread #29: tid = 0x7247b8, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'StyleThread#1' thread #30: tid = 0x7247b9, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'StyleThread#2' thread #31: tid = 0x7247ba, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'StyleThread#3' thread #32: tid = 0x7247bb, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'StyleThread#4' thread #33: tid = 0x7247bc, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'StyleThread#5' thread #34: tid = 0x7247de, 0x00007fff563b220a libsystem_kernel.dylib`mach_msg_trap + 10 thread #35: tid = 0x7247ea, 0x00007fff563b220a libsystem_kernel.dylib`mach_msg_trap + 10 thread #36: tid = 0x7247f0, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'ImageBr~geChild' thread #37: tid = 0x7247f5, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'ProcessHangMon' thread #38: tid = 0x72480d, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'DOM Worker' thread #39: tid = 0x724813, 0x00007fff563b220a libsystem_kernel.dylib`mach_msg_trap + 10 thread #40: tid = 0x724816, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'ImgDecoder #2' thread #41: tid = 0x72488f, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'DataStorage' thread #42: tid = 0x724890, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'URL Classifier' thread #43: tid = 0x724891, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'Classif~ Update' thread #44: tid = 0x72489a, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'Cache I/O' thread #45: tid = 0x7248a3, 0x00007fff563b220a libsystem_kernel.dylib`mach_msg_trap + 10 thread #46: tid = 0x7248c1, 0x00007fff563b220a libsystem_kernel.dylib`mach_msg_trap + 10 thread #47: tid = 0x7248df, 0x00007fff563b220a libsystem_kernel.dylib`mach_msg_trap + 10 thread #48: tid = 0x724939, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'localStorage DB' thread #49: tid = 0x724942, 0x00007fff563b220a libsystem_kernel.dylib`mach_msg_trap + 10 thread #50: tid = 0x724968, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'mozStorage #1' thread #51: tid = 0x72497b, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'mozStorage #2' thread #52: tid = 0x72498d, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'mozStorage #3' thread #53: tid = 0x724994, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'QuotaManager IO' thread #54: tid = 0x7249a0, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'mozStorage #4' thread #55: tid = 0x7249a5, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'mozStorage #5' thread #56: tid = 0x7249e3, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'SaveScripts' thread #57: tid = 0x724a8a, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'DOM Worker' thread #58: tid = 0x724a8c, 0x00007fff563b220a libsystem_kernel.dylib`mach_msg_trap + 10 thread #59: tid = 0x724cf0, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'mozStorage #6' thread #60: tid = 0x7251f2, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'VideoCapture' thread #61: tid = 0x7273a1, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'mozStorage #7' thread #62: tid = 0x727547, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'mozStorage #8' thread #63: tid = 0x727efd, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'mozStorage #9' thread #64: tid = 0x7f8b55, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'DNS Res~ver #39' thread #65: tid = 0x7f8e91, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'DOMCacheThread' thread #66: tid = 0x812682, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'DNS Res~ver #42' thread #67: tid = 0x814c40, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'DNS Res~ver #43' thread #68: tid = 0x814c41, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'DNS Res~ver #44' thread #69: tid = 0x814c42, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'DNS Res~ver #45' thread #70: tid = 0x814c43, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'DNS Res~ver #46' thread #71: tid = 0x814c44, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'DNS Res~ver #47' thread #72: tid = 0x814c4e, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'DNS Res~ver #48' thread #73: tid = 0x816579, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'IndexedDB #309' thread #74: tid = 0x8166af, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'DOM Worker' thread #75: tid = 0x8166b0, 0x00007fff563b220a libsystem_kernel.dylib`mach_msg_trap + 10 thread #76: tid = 0x8166b6, 0x00007fff563bba16 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'StreamT~s #1018' thread #77: tid = 0x816828, 0x00007fff563bc28a libsystem_kernel.dylib`__workq_kernreturn + 10 thread #78: tid = 0x81682a, 0x0000000000000000 (lldb) thread select 23 * thread #23, name = 'Compositor' frame #0: 0x00007fff563bbd82 libsystem_kernel.dylib`__semwait_signal + 10 libsystem_kernel.dylib`__semwait_signal: -> 0x7fff563bbd82 <+10>: jae 0x7fff563bbd8c ; <+20> 0x7fff563bbd84 <+12>: movq %rax, %rdi 0x7fff563bbd87 <+15>: jmp 0x7fff563b2b0e ; cerror 0x7fff563bbd8c <+20>: retq (lldb) bt * thread #23, name = 'Compositor' * frame #0: 0x00007fff563bbd82 libsystem_kernel.dylib`__semwait_signal + 10 frame #1: 0x00007fff56336724 libsystem_c.dylib`nanosleep + 199 frame #2: 0x00007fff56336618 libsystem_c.dylib`usleep + 53 frame #3: 0x00007fff290d0b26 GeForceGLDriver`___lldb_unnamed_symbol17958$$GeForceGLDriver + 128 frame #4: 0x00007fff28eb5988 GeForceGLDriver`___lldb_unnamed_symbol10627$$GeForceGLDriver + 1843 frame #5: 0x00007fff28eb49fc GeForceGLDriver`___lldb_unnamed_symbol10616$$GeForceGLDriver + 134 frame #6: 0x00007fff28ecaf7d GeForceGLDriver`___lldb_unnamed_symbol10879$$GeForceGLDriver + 453 frame #7: 0x00007fff28f0f4b4 GeForceGLDriver`___lldb_unnamed_symbol11635$$GeForceGLDriver + 530 frame #8: 0x00007fff28f0f1e9 GeForceGLDriver`___lldb_unnamed_symbol11634$$GeForceGLDriver + 111 frame #9: 0x00007fff46ea5ffd libGPUSupportMercury.dylib`gldDestroyTexture + 20 frame #10: 0x00007fff28ef6ace GeForceGLDriver`gldDestroyTexture + 218 frame #11: 0x00007fff37db4cbe libGFXShared.dylib`gfxDestroyPluginTexture + 60 frame #12: 0x00007fff38a73821 GLEngine`gleFreeTextureObject + 36 frame #13: 0x00007fff38a3f947 GLEngine`gleUnbindAndFreeFramebufferObject + 182 frame #14: 0x00007fff3898846c GLEngine`glDeleteFramebuffersEXT_Exec + 270 frame #15: 0x0000000110d32281 XUL`mozilla::gl::GLContext::fDeleteFramebuffers(int, unsigned int const*) + 241 frame #16: 0x0000000110db21b3 XUL`mozilla::layers::CompositingRenderTargetOGL::~CompositingRenderTargetOGL() + 371 frame #17: 0x0000000110db224e XUL`mozilla::layers::CompositingRenderTargetOGL::~CompositingRenderTargetOGL() + 14 frame #18: 0x0000000110eb59e0 XUL`mozilla::layers::ContainerLayerComposite::~ContainerLayerComposite() + 80 frame #19: 0x0000000110dad941 XUL`mozilla::layers::ContainerLayerProperties::~ContainerLayerProperties() + 177 frame #20: 0x0000000110dad8e5 XUL`mozilla::layers::ContainerLayerProperties::~ContainerLayerProperties() + 85 frame #21: 0x0000000110ed22ab XUL`mozilla::layers::LayerManagerComposite::UpdateAndRender() + 3835 frame #22: 0x0000000110ed11fd XUL`mozilla::layers::LayerManagerComposite::EndTransaction(mozilla::TimeStamp const&, mozilla::layers::LayerManager::EndTransactionFlags) + 221 frame #23: 0x0000000110eedcdd XUL`mozilla::layers::CompositorBridgeParent::CompositeToTarget(mozilla::gfx::DrawTarget*, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const*) + 861 frame #24: 0x0000000110eed036 XUL`mozilla::layers::CompositorBridgeParent::ForceComposeToTarget(mozilla::gfx::DrawTarget*, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const*) + 182 frame #25: 0x0000000110eed102 XUL`mozilla::layers::CompositorBridgeParent::RecvFlushRendering() + 130 frame #26: 0x00000001108f8bf0 XUL`mozilla::layers::PCompositorBridgeParent::OnMessageReceived(IPC::Message const&, IPC::Message*&) + 7456 frame #27: 0x00000001104be1e7 XUL`mozilla::ipc::MessageChannel::DispatchMessage(IPC::Message&&) + 743 frame #28: 0x00000001104bf5d8 XUL`mozilla::ipc::MessageChannel::MessageTask::Run() + 472 frame #29: 0x0000000110482678 XUL`MessageLoop::DoWork() + 1880 frame #30: 0x0000000110483542 XUL`base::MessagePumpDefault::Run(base::MessagePump::Delegate*) + 1234 frame #31: 0x000000011048b6fc XUL`base::Thread::ThreadMain() + 412 frame #32: 0x0000000110487107 XUL`ThreadFunc(void*) (.llvm.1370816345910677287) + 23 frame #33: 0x00007fff56583661 libsystem_pthread.dylib`_pthread_body + 340 frame #34: 0x00007fff5658350d libsystem_pthread.dylib`_pthread_start + 377 frame #35: 0x00007fff56582bf9 libsystem_pthread.dylib`thread_start + 13
This is probably stretching it, but I noticed on OSX that if the GLContextImpl::MakCurrentImpl fails, we silently ignore it, where as in the other GLContext implementations we don't: https://searchfox.org/mozilla-central/rev/819cd31a93fd50b7167979607371878c4d6f18e8/gfx/gl/GLContextProviderCGL.mm#110 Could it be that we failed to switch after the monitor got plugged in and changed our state? And when we try to perform an operation it gets messed up because the right context isn't active? If not, at least it seems reproducible and we can probably dump whatever debugging info necessary :).
Flags: needinfo?(jgilbert)
Priority: -- → P3
Thanks for the suggestion. I know absolutely nothing about these details, but: (In reply to Andrew Osmond [:aosmond] from comment #2) > This is probably stretching it, but I noticed on OSX that if the > GLContextImpl::MakCurrentImpl fails, we silently ignore it, where as in the > other GLContext implementations we don't: Based on https://developer.apple.com/documentation/appkit/nsopenglcontext/1436212-makecurrentcontext, it's not obvious that `makeCurrentContext` _can_ fail. It doesn't appear to return `bool`. Or were you thinking of a different failure? Maybe it is a failure if `mContext == null`? > https://searchfox.org/mozilla-central/rev/ > 819cd31a93fd50b7167979607371878c4d6f18e8/gfx/gl/GLContextProviderCGL.mm#110 > > Could it be that we failed to switch after the monitor got plugged in and > changed our state? And when we try to perform an operation it gets messed up > because the right context isn't active? If not, at least it seems > reproducible and we can probably dump whatever debugging info necessary :). I can certainly help dumping state, or I could run an instrumented build for a few nights to capture logging.

My read is that makeCurrentContext doesn't fail per se. Maaaybe we can check current? (class var current: NSOpenGLContext? { get })

However, this is crashing deep in glDeleteFramebuffers, whereas a current-context bug should be handled much higher up!

The code:
https://searchfox.org/mozilla-central/rev/2487eaaf066a087786e0bcc05301863d1ae08645/gfx/layers/opengl/CompositingRenderTargetOGL.cpp#22

CompositingRenderTargetOGL::~CompositingRenderTargetOGL() {
  if (mGL && mGL->MakeCurrent()) {
    mGL->fDeleteTextures(1, &mTextureHandle);
    mGL->fDeleteFramebuffers(1, &mFBO);
  }
}

Here's my guess: glDeleteFramebuffers has a bug detaching the 'deleted' texture. glDeleteTextures is really more like glUnbindAndReleaseHandle: But if it's bound to a framebuffer that's /not/ currently bound to BindFramebuffers, it will release the GL 'name'/handle's reference, but the unbound FB is still holding a strong reference, keeping thei texture alive.

You can see how the callstack quickly turns from delete-framebuffer to delete-texture:

    frame #8: 0x00007fff28f0f1e9 GeForceGLDriver`___lldb_unnamed_symbol11634$$GeForceGLDriver + 111
    frame #9: 0x00007fff46ea5ffd libGPUSupportMercury.dylib`gldDestroyTexture + 20
    frame #10: 0x00007fff28ef6ace GeForceGLDriver`gldDestroyTexture + 218
    frame #11: 0x00007fff37db4cbe libGFXShared.dylib`gfxDestroyPluginTexture + 60
    frame #12: 0x00007fff38a73821 GLEngine`gleFreeTextureObject + 36
    frame #13: 0x00007fff38a3f947 GLEngine`gleUnbindAndFreeFramebufferObject + 182
    frame #14: 0x00007fff3898846c GLEngine`glDeleteFramebuffersEXT_Exec + 270
    frame #15: 0x0000000110d32281 XUL`mozilla::gl::GLContext::fDeleteFramebuffers(int, unsigned int const*) + 241

We might try deleting the framebuffer before the texture and see if that helps!

Assignee: nobody → jgilbert
Flags: needinfo?(jgilbert)
Flags: needinfo?(nalexander)

There's a r+ patch which didn't land and no activity in this bug for 2 weeks.
:jgilbert, could you have a look please?
For more information, please visit auto_nag documentation.

Flags: needinfo?(jgilbert)

Waiting on nalexander.

Flags: needinfo?(jgilbert)

Nick do you still encounter this?

Keywords: hang
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → INACTIVE
Attachment #9077546 - Attachment is obsolete: true

(In reply to Wayne Mery (:wsmwk) from comment #9)

Nick do you still encounter this?

Sorry for not getting back. Generally no, I am not seeing this, but I think that configuration is actually different -- i.e., I have a dock and use Thunderbird rather than DP1.2 directly from the device. jgilbert, my apologies for letting this linger.

Flags: needinfo?(nalexander)

Ok, thanks!

Resolution: INACTIVE → WORKSFORME
Resolution: WORKSFORME → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: