Issue metadata
Sign in to add a comment
|
Crash in CATransactionGPUCoordinator during context_lost tests |
||||||||||||||||||||||||
Issue descriptionCrash observed here: https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Mac%20FYI%20Experimental%20Release%20%28Intel%29/4027 Failing shard of context_lost tests: https://chromium-swarm.appspot.com/task?id=3ed2b60f5d03e910&refresh=10&show_raw=1 stack excerpt: Crash reason: EXC_BREAKPOINT / EXC_I386_BPT Crash address: 0x10f1c2fb1 Process uptime: 2 seconds Thread 0 (crashed) 0 Chromium Framework!__ZN4base5debug13BreakDebuggerEv + 0x11 rax = 0x00007fccca1b604b rdx = 0x00007fccca1b604b rcx = 0x0000000000000016 rbx = 0x0000000000000016 rsi = 0x000000000000001b rdi = 0x0000000117232f74 rbp = 0x00007ffee4bf9b60 rsp = 0x00007ffee4bf9b60 r8 = 0x00007fccca1b6061 r9 = 0x00000000000011cf r10 = 0x00007fccca1b6061 r11 = 0x000000010f203a70 r12 = 0x00007fccc9700290 r13 = 0x00007fccca1b6061 r14 = 0x00007ffee4bfa130 r15 = 0x00007ffee4bfa128 rip = 0x000000010f1c2fb1 Found by: given as instruction pointer in context 1 Chromium Framework!__ZN7logging10LogMessageD2Ev + 0x8dd rbp = 0x00007ffee4bfa110 rsp = 0x00007ffee4bf9b70 rip = 0x000000010f0c941d Found by: previous frame's frame pointer 2 Chromium Framework!__ZN7content27CATransactionGPUCoordinatorD0Ev + 0x62 rbp = 0x00007ffee4bfa260 rsp = 0x00007ffee4bfa120 rip = 0x000000010ce96412 Found by: previous frame's frame pointer 3 Chromium Framework!__ZN4base8internal9BindStateIMN2ui24CATransactionCoordinatorEFvPNS3_18PostCommitObserverEEJNS0_17UnretainedWrapperIS3_EENS0_18RetainedRefWrapperIN7content27CATransactionGPUCoordinatorEEEEE7DestroyEPKNS0_13BindStateBaseE + 0x36 rbp = 0x00007ffee4bfa280 rsp = 0x00007ffee4bfa270 rip = 0x000000010ce96f56 Found by: previous frame's frame pointer 4 Chromium Framework!__ZNO4base12OnceCallbackIFvvEE3RunEv + 0x73 rbp = 0x00007ffee4bfa3d0 rsp = 0x00007ffee4bfa290 rip = 0x000000010d130ac3 Found by: previous frame's frame pointer 5 Chromium Framework!__ZN4base5debug13TaskAnnotator7RunTaskEPKcPNS_11PendingTaskE + 0x141 rbp = 0x00007ffee4bfa590 rsp = 0x00007ffee4bfa3e0 rip = 0x000000010f0aeba1 Found by: previous frame's frame pointer 6 Chromium Framework!__ZN4base11MessageLoop7RunTaskEPNS_11PendingTaskE + 0x216 rbp = 0x00007ffee4bfa780 rsp = 0x00007ffee4bfa5a0 rip = 0x000000010f0e5d76 Found by: previous frame's frame pointer 7 Chromium Framework!__ZN4base11MessageLoop21DeferOrRunPendingTaskENS_11PendingTaskE + 0xba rbp = 0x00007ffee4bfa930 rsp = 0x00007ffee4bfa790 rip = 0x000000010f0e612a Found by: previous frame's frame pointer 8 Chromium Framework!__ZN4base11MessageLoop6DoWorkEv + 0x23c rbp = 0x00007ffee4bfabc0 rsp = 0x00007ffee4bfa940 rip = 0x000000010f0e63ac Found by: previous frame's frame pointer 9 Chromium Framework!__ZN4base24MessagePumpCFRunLoopBase7RunWorkEv + 0x2a rbp = 0x00007ffee4bfabf0 rsp = 0x00007ffee4bfabd0 rip = 0x000000010f0ea62a Found by: previous frame's frame pointer 10 Chromium Framework!__ZN4base3mac15CallWithEHFrameEU13block_pointerFvvE + 0xa rbp = 0x00007ffee4bfac00 rsp = 0x00007ffee4bfac00 rip = 0x000000010f0cb3aa Found by: previous frame's frame pointer 11 Chromium Framework!__ZN4base24MessagePumpCFRunLoopBase13RunWorkSourceEPv + 0x3f rbp = 0x00007ffee4bfac40 rsp = 0x00007ffee4bfac10 rip = 0x000000010f0e9f0f Found by: previous frame's frame pointer 12 CoreFoundation + 0xa3a61 rbp = 0x00007ffee4bfac50 rsp = 0x00007ffee4bfac50 rip = 0x00007fff356eda61 Found by: previous frame's frame pointer 13 CoreFoundation + 0x15d47c rbp = 0x00007ffee4bfac80 rsp = 0x00007ffee4bfac60 rip = 0x00007fff357a747c Found by: previous frame's frame pointer 14 CoreFoundation + 0x864c0 rbp = 0x00007ffee4bface0 rsp = 0x00007ffee4bfac90 rip = 0x00007fff356d04c0 Found by: previous frame's frame pointer 15 CoreFoundation + 0x8593d rbp = 0x00007ffee4bfb9d0 rsp = 0x00007ffee4bfacf0 rip = 0x00007fff356cf93d Found by: previous frame's frame pointer 16 CoreFoundation + 0x851a3 rbp = 0x00007ffee4bfba60 rsp = 0x00007ffee4bfb9e0 rip = 0x00007fff356cf1a3 Found by: previous frame's frame pointer I don't see evidence of this crash anywhere else so marking this P3. If there's any eyeball analysis which can be done to this code to make it more resilient to the GPU process crashing and associated context loss, that would be appreciated.
,
Jul 21
In the CATransactionGPUCoordinator ctor and dtor we do
ui::WindowResizeHelperMac::Get()->task_runner()->PostTask(
FROM_HERE,
base::BindOnce(&ui::CATransactionCoordinator::AddPostCommitObserver,
base::Unretained(&ui::CATransactionCoordinator::Get()),
base::RetainedRef(this)));
It's probably better to do
ui::WindowResizeHelperMac::Get()->task_runner()->PostTask(
FROM_HERE,
base::BindOnce(&CATransactionGPUCoordinator::AddAsPostCommitObserver,
this))
and then have CATransactionGPUCoordinator::AddAsPostCommitObserver add and remove itself. It's not clear that it's a good idea to call ui::CATransactionCoordinator::Get() from the IO thread (see [1])
[1]
https://cs.chromium.org/chromium/src/ui/accelerated_widget_mac/ca_transaction_observer.mm?rcl=036438089d99d45c6b472cef75f77d9167eecbe0&l=35
,
Aug 31
ccameron: Can you assign this to somebody to get fixed?
,
Aug 31
This looks like it was issue 871430 , now fixed |
|||||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||||
Comment 1 by kbr@chromium.org
, Jul 20Summary: Crash in CATransactionGPUCoordinator during context_lost tests (was: Crash in CATransactionGPUCoordinator during ContextLost_WebGLContextLostFromGPUProcessExit test)