Running layouttests on a new touchbar Mac crashes due to system dependency checks |
|||
Issue description
I have a fresh chromium checkout on MacOS which fails to run blink/webkit layouttests due to system dependency checks. @Ericrk can also reproduce this. I found --nocheck-sys-deps is a workaround to still run tests.
System:
MacOS Sierra, 10.12.4
MacBook Pro (15-inch, 2016)
third_party/WebKit/Tools/Scripts/run-webkit-tests --debug third_party/WebKit/LayoutTests/paint/transforms/percentage-transform-fractional-box-size.html
[Crash], see attached crash log.
third_party/WebKit/Tools/Scripts/run-webkit-tests --debug --nocheck-sys-deps third_party/WebKit/LayoutTests/paint/transforms/percentage-transform-fractional-box-size.html
[Pass]
Running content shell in lldb with --check-layout-test-sys-deps shows the following:
[21:58:32]:~/Desktop/chromium/src $ lldb -- ./out/Debug/Content\ Shell.app/Contents/MacOS/Content\ Shell --check-layout-test-sys-deps --single-process
(lldb) target create "./out/Debug/Content Shell.app/Contents/MacOS/Content Shell"
Current executable set to './out/Debug/Content Shell.app/Contents/MacOS/Content Shell' (x86_64).
(lldb) settings set -- target.run-args "--check-layout-test-sys-deps" "--single-process"
(lldb) r
Process 94258 launched: './out/Debug/Content Shell.app/Contents/MacOS/Content Shell' (x86_64)
objc[94258]: Class MockCrApp is implemented in both /Users/pdr/Desktop/chromium/src/out/Debug/libtest_runner.dylib (0x123e13850) and /Users/pdr/Desktop/chromium/src/out/Debug/Content Shell.app/Contents/Frameworks/Content Shell Framework.framewo
rk/Content Shell Framework (0x1010fc128). One of the two will be used. Which one is undefined.
objc[94258]: Class CocoaTestHelperWindow is implemented in both /Users/pdr/Desktop/chromium/src/out/Debug/libtest_runner.dylib (0x123e137d8) and /Users/pdr/Desktop/chromium/src/out/Debug/Content Shell.app/Contents/Frameworks/Content Shell Frame
work.framework/Content Shell Framework (0x1010fc150). One of the two will be used. Which one is undefined.
2017-05-08 21:59:13.302728-0700 Content Shell[94258:1329965] GVA info: preferred scaler idx 1
[94258:62467:0508/215913.324229:216431733707167:WARNING:histograms.cc(40)] Started multiple compositor clients (Browser, Renderer) in one process. Some metrics will be disabled.
2017-05-08 21:59:13.327799-0700 Content Shell[94258:1329977] Couldn't set selectedControlTextColor from default ()
2017-05-08 21:59:13.327888-0700 Content Shell[94258:1329977] Couldn't set selectedTextColor from default ()
Process 94258 stopped
* thread #1, name = 'CrBrowserMain', queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
frame #0: 0x00007fff93ca7069 libobjc.A.dylib`objc_msgSend + 41
libobjc.A.dylib`objc_msgSend:
-> 0x7fff93ca7069 <+41>: cmpq (%r11), %rsi
0x7fff93ca706c <+44>: jne 0x7fff93ca7072 ; <+50>
0x7fff93ca706e <+46>: jmpq *0x8(%r11)
0x7fff93ca7072 <+50>: cmpq $0x1, (%r11)
(lldb) bt 100
* thread #1, name = 'CrBrowserMain', queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
* frame #0: 0x00007fff93ca7069 libobjc.A.dylib`objc_msgSend + 41
frame #1: 0x00007fff7edbbd81 CoreFoundation`CFBasicHashFindBucket + 705
frame #2: 0x00007fff7eea9706 CoreFoundation`-[__NSOrderedSetM containsObject:] + 38
frame #3: 0x00007fff7cfdb56f AppKit`addProviders + 112
frame #4: 0x00007fff7cfdb3ed AppKit`+[NSTouchBarFinder _currentProviders] + 263
frame #5: 0x00007fff7cfdbedd AppKit`-[NSTouchBarFinder _update] + 302
frame #6: 0x00007fff7cfdc576 AppKit`__36-[NSTouchBarFinder __setNeedsUpdate]_block_invoke + 56
frame #7: 0x00007fff7ee56dd7 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
frame #8: 0x00007fff7ee56d47 CoreFoundation`__CFRunLoopDoObservers + 391
frame #9: 0x00007fff7ee371a9 CoreFoundation`CFRunLoopRunSpecific + 393
frame #10: 0x00007fff7e398ebc HIToolbox`RunCurrentEventLoopInMode + 240
frame #11: 0x00007fff7e398bf9 HIToolbox`ReceiveNextEventCommon + 184
frame #12: 0x00007fff7e398b26 HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 71
frame #13: 0x00007fff7c933e24 AppKit`_DPSNextEvent + 1120
frame #14: 0x00007fff7d0af85e AppKit`-[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 2796
frame #15: 0x00007fff7c9287ab AppKit`-[NSApplication run] + 926
frame #16: 0x000000010eac5402 libbase.dylib`base::MessagePumpNSApplication::DoRun(this=0x000000012c9303c0, delegate=0x000000012c931ad0) at message_pump_mac.mm:755
frame #17: 0x000000010eac43ea libbase.dylib`base::MessagePumpCFRunLoopBase::Run(this=0x000000012c9303c0, delegate=0x000000012c931ad0) at message_pump_mac.mm:292
frame #18: 0x000000010eab34c5 libbase.dylib`base::MessageLoop::RunHandler(this=0x000000012c931ad0) at message_loop.cc:368
frame #19: 0x000000010eba122b libbase.dylib`base::RunLoop::Run(this=0x00007fff5fbfe180) at run_loop.cc:105
frame #20: 0x000000010eba1f3e libbase.dylib`base::RunLoop::RunUntilIdle(this=0x00007fff5fbfe180) at run_loop.cc:115
frame #21: 0x0000000100c1c113 Content Shell Framework`content::Shell::CloseAllWindows() at shell.cc:148
frame #22: 0x0000000100be19ca Content Shell Framework`LayoutTestBrowserMain(parameters=0x00007fff5fbfee30, main_runner=0x00007fff5fbfe988) at layout_test_browser_main.cc:145
frame #23: 0x0000000100b312d1 Content Shell Framework`content::ShellMainDelegate::RunProcess(this=0x00007fff5fbff810, process_type="", main_function_params=0x00007fff5fbfee30) at shell_main_delegate.cc:297
frame #24: 0x0000000106302cda libcontent.dylib`content::RunNamedProcessTypeMain(process_type="", main_function_params=0x00007fff5fbfee30, delegate=0x00007fff5fbff810) at content_main_runner.cc:399
frame #25: 0x00000001063047f2 libcontent.dylib`content::ContentMainRunnerImpl::Run(this=0x000000012cb15370) at content_main_runner.cc:705
frame #26: 0x00000001063013ad libcontent.dylib`content::ContentServiceManagerMainDelegate::RunEmbedderProcess(this=0x00007fff5fbff780) at content_service_manager_main_delegate.cc:41
frame #27: 0x000000012a7ef554 libembedder.dylib`service_manager::Main(params=0x00007fff5fbff768) at main.cc:455
frame #28: 0x0000000106302a99 libcontent.dylib`content::ContentMain(params=0x00007fff5fbff7e8) at content_main.cc:19
Could this be related to the touchbar? Maybe related to https://crbug.com/667274 ?
,
May 9 2017
Yeah, it is a new touchbar one. Ericrk's is as well. I haven't heard folks with nontouchbar Macs having this issue.
,
May 9 2017
Note that the "system dependencies check" doesn't do anything special on Mac (see https://cs.chromium.org/chromium/src/content/shell/app/blink_test_platform_support_mac.mm?l=49) -- so in theory this should be reproducible by running Content Shell without the --check-layout-test-sys-deps flag.
,
May 9 2017
I think you're correct that it's the same underlying cause as https://crbug.com/667274 Sent crrev.com/2872903004
,
May 9 2017
Thanks lgrey@ :-) I don't have enough context to review that, I think, but after fixing could someone verify the fix and close this issue?
,
May 10 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8fdcb922fcb704745bcd2b4376605582bea0f54d commit 8fdcb922fcb704745bcd2b4376605582bea0f54d Author: lgrey <lgrey@chromium.org> Date: Wed May 10 14:36:16 2017 [Mac] Nil out content shell window delegate on close On TouchBar Macs, the touch bar provider system overretains windows that are closed while the application is backgrounded. See crbug.com/667274 for details. In content shell, this leaves the window with a dangling delegate pointer and can cause crashes in layout tests. BUG= 719830 Review-Url: https://codereview.chromium.org/2872903004 Cr-Commit-Position: refs/heads/master@{#470565} [modify] https://crrev.com/8fdcb922fcb704745bcd2b4376605582bea0f54d/content/shell/browser/shell_mac.mm
,
May 10 2017
|
|||
►
Sign in to add a comment |
|||
Comment 1 by lgrey@chromium.org
, May 9 2017