New issue
Advanced search Search tips

Issue 719830 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner: ----
Closed: May 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Running layouttests on a new touchbar Mac crashes due to system dependency checks

Project Member Reported by pdr@chromium.org, May 9 2017

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 ?
 
layouttest-crash-log.txt
3.9 KB View Download

Comment 1 by lgrey@chromium.org, May 9 2017

"MacBook Pro (15-inch, 2016)"

Can you confirm this is the TouchBar model? (I'm assuming as much, but can't hurt to ask)

Comment 2 by pdr@chromium.org, 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.
Cc: qyears...@chromium.org
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.

Comment 4 by lgrey@chromium.org, May 9 2017

I think you're correct that it's the same underlying cause as  https://crbug.com/667274 

Sent crrev.com/2872903004
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?
Project Member

Comment 6 by bugdroid1@chromium.org, 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

Comment 7 by lgrey@chromium.org, May 10 2017

Status: Fixed (was: Untriaged)

Sign in to add a comment