New issue
Advanced search Search tips

Issue 815291 link

Starred by 3 users

Issue metadata

Status: Available
Owner: ----
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 3
Type: Bug

Blocked on:
issue 780980



Sign in to add a comment

Error message: Owner supplied to -[NSTrackingArea initWithRect:options:owner:userInfo:] referenced a deallocating object. Tracking area behavior is undefined. Break on NSTrackingAreaDeallocatingOwnerError to debug

Project Member Reported by erikc...@chromium.org, Feb 23 2018

Issue description

erikchen@erikchen-macpro3 ~/projects/chromium/src  (test64)$ ./out/gn/Chromium.app/Contents/MacOS/Chromium --user-data-dir=/tmp/a9812 https://www.wikipedia.org/ 
2018-02-23 16:14:58.382 Chromium[8750:135592] *** Owner supplied to -[NSTrackingArea initWithRect:options:owner:userInfo:] referenced a deallocating object. Tracking area behavior is undefined. Break on NSTrackingAreaDeallocatingOwnerError to debug.
AVDCreateGPUAccelerator: Error loading GPU renderer


^Cerikchen@erikchen-macpro3 ~/projects/chromium/src  (test64)$ lldb ./out/gn/Chromium.app/Contents/MacOS/Chromium 
(lldb) target create "./out/gn/Chromium.app/Contents/MacOS/Chromium"
b Current executable set to './out/gn/Chromium.app/Contents/MacOS/Chromium' (x86_64).
(lldb) b NSTrackingAreaDeallocatingOwnerError
Breakpoint 1: where = AppKit`NSTrackingAreaDeallocatingOwnerError, address = 0x0000000000999a42
(lldb) process launch -- --user-data-dir=/tmp/a9812 https://www.wikipedia.org/
Process 8809 launched: './out/gn/Chromium.app/Contents/MacOS/Chromium' (x86_64)
AVDCreateGPUAccelerator: Error loading GPU renderer
Process 8809 stopped
* thread #1, name = 'CrBrowserMain', queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
    frame #0: 0x00007fff2deb4a42 AppKit`NSTrackingAreaDeallocatingOwnerError
AppKit`NSTrackingAreaDeallocatingOwnerError:
->  0x7fff2deb4a42 <+0>: pushq  %rbp
    0x7fff2deb4a43 <+1>: movq   %rsp, %rbp
    0x7fff2deb4a46 <+4>: popq   %rbp
    0x7fff2deb4a47 <+5>: retq   
Target 0: (Chromium) stopped.
(lldb) bt
* thread #1, name = 'CrBrowserMain', queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
  * frame #0: 0x00007fff2deb4a42 AppKit`NSTrackingAreaDeallocatingOwnerError
    frame #1: 0x00007fff2d54e992 AppKit`-[NSTrackingArea initWithRect:options:owner:userInfo:] + 155
    frame #2: 0x00007fff2d5ceacf AppKit`-[NSTrackingArea initWithRect:options:pressureConfigurations:owner:userInfo:] + 145
    frame #3: 0x00007fff2dbeef5c AppKit`-[NSView(NSPressureConfiguration) setPressureConfiguration:] + 204
    frame #4: 0x00007fff2ff8788f CoreFoundation`-[NSSet makeObjectsPerformSelector:] + 271
    frame #5: 0x00007fff2d52cc61 AppKit`-[NSIBObjectData nibInstantiateWithOwner:options:topLevelObjects:] + 1594
    frame #6: 0x00007fff2d62813a AppKit`-[NSNib _instantiateNibWithExternalNameTable:options:] + 679
    frame #7: 0x00007fff2d627d96 AppKit`-[NSNib _instantiateWithOwner:options:topLevelObjects:] + 136
    frame #8: 0x00007fff2d62706c AppKit`-[NSViewController loadView] + 343
    frame #9: 0x00007fff2d59ef32 AppKit`-[NSViewController _loadViewIfRequired] + 75
    frame #10: 0x00007fff2d59ee9d AppKit`-[NSViewController view] + 30
    frame #11: 0x0000000106c926b8 Chromium Framework`::-[ToolbarController toolbarView]() at toolbar_controller.mm:575 [opt]
    frame #12: 0x0000000106bc15fe Chromium Framework`::-[BrowserWindowController initWithBrowser:takeOwnership:]() at browser_window_controller.mm:365 [opt]
    frame #13: 0x0000000106bcb5f2 Chromium Framework`::CreateBrowserWindow() [inlined] CreateBrowserWindowCocoa at browser_window_factory_cocoa.mm:17 [opt]
    frame #14: 0x0000000106bcb5ca Chromium Framework`::CreateBrowserWindow() at browser_window_factory_cocoa.mm:26 [opt]
    frame #15: 0x0000000106a5f231 Chromium Framework`::Browser() [inlined] CreateBrowserWindow at browser.cc:263 [opt]
    frame #16: 0x0000000106a5f225 Chromium Framework`::Browser() at browser.cc:452 [opt]
    frame #17: 0x0000000106aa25a1 Chromium Framework`::OpenTabsInBrowser() at startup_browser_creator_impl.cc:418 [opt]
    frame #18: 0x0000000106aa3325 Chromium Framework`::RestoreOrCreateBrowser() at startup_browser_creator_impl.cc:754 [opt]
    frame #19: 0x0000000106aa21e9 Chromium Framework`::DetermineURLsAndLaunch() at startup_browser_creator_impl.cc:639 [opt]
    frame #20: 0x0000000106aa1aa4 Chromium Framework`::Launch() at startup_browser_creator_impl.cc:348 [opt]
    frame #21: 0x0000000106a9ee00 Chromium Framework`::LaunchBrowser() at startup_browser_creator.cc:354 [opt]
    frame #22: 0x0000000106aa07aa Chromium Framework`::ProcessLastOpenedProfiles() at startup_browser_creator.cc:831 [opt]
    frame #23: 0x0000000106aa046f Chromium Framework`::LaunchBrowserForLastProfiles() at startup_browser_creator.cc:761 [opt]
    frame #24: 0x0000000106a9e8dc Chromium Framework`::ProcessCmdLineImpl() at startup_browser_creator.cc:723 [opt]
    frame #25: 0x0000000106a9e337 Chromium Framework`::Start() at startup_browser_creator.cc:309 [opt]
    frame #26: 0x0000000103ae7936 Chromium Framework`::PreMainMessageLoopRunImpl() at chrome_browser_main.cc:2083 [opt]
    frame #27: 0x0000000103ae685e Chromium Framework`::PreMainMessageLoopRun() at chrome_browser_main.cc:1463 [opt]
    frame #28: 0x00000001024d4ab3 Chromium Framework`::PreMainMessageLoopRun() at browser_main_loop.cc:1087 [opt]
    frame #29: 0x00000001028bdb17 Chromium Framework`::RunAllTasksNow() [inlined] Run at callback.h:124 [opt]
    frame #30: 0x00000001028bdb10 Chromium Framework`::RunAllTasksNow() at startup_task_runner.cc:45 [opt]
    frame #31: 0x00000001024d3415 Chromium Framework`::CreateStartupTasks() at browser_main_loop.cc:970 [opt]
    frame #32: 0x00000001024d70a0 Chromium Framework`::Initialize() at browser_main_runner.cc:139 [opt]
    frame #33: 0x00000001024d1374 Chromium Framework`::BrowserMain() at browser_main.cc:42 [opt]
    frame #34: 0x0000000103a91979 Chromium Framework`::Run() at content_main_runner.cc:703 [opt]
    frame #35: 0x00000001055bb254 Chromium Framework`::Main() at main.cc:453 [opt]
    frame #36: 0x0000000103a90e54 Chromium Framework`::ContentMain() at content_main.cc:19 [opt]
    frame #37: 0x0000000101803653 Chromium Framework`::ChromeMain() at chrome_main.cc:101 [opt]
    frame #38: 0x0000000100000de4 Chromium`main at chrome_exe_main_mac.cc:165 [opt]
    frame #39: 0x00007fff57932115 libdyld.dylib`start + 1
    frame #40: 0x00007fff57932115 libdyld.dylib`start + 1

 

Comment 1 by rsesek@chromium.org, Feb 27 2018

Labels: Hotlist-HighSierra
I think there's some tail-call optimization between frames #4 and #3, which is likely -makeObjectsPerformSelector:@selector(awakeFromNib). That would likely implicate this block: https://chromium.googlesource.com/chromium/src/+/602ee1a64fbad92a407b3b9cc648b22f2dd6665a/chrome/browser/ui/cocoa/location_bar/autocomplete_text_field.mm#54

It looks like NSTrackingAreaDeallocatingOwnerError is 10.13 only.

Comment 2 by rsesek@chromium.org, Feb 28 2018

Blockedon: 780980
There's an NSGetBoolAppConfig option called "NSTrackingAreaIgnoreDeallocatingOwners", the default value of which is computed by NSTrackingAreaIgnoreDeallocatingOwnersDefaultValueFunction(). That is a simple CFExecutableLinkedOnOrAfter() check for 10.13. If on-or-after 10.13, then the value is "false" (meaning the exception is raised), but if lower than 10.13 the default is "true".

The issue seems to be that -[NSView(NSPressureConfiguration) setPressureConfiguration:] constructs a tracking area with a nil owner, and this NSTrackingAreaDeallocatingOwnerError has a problem with it.

I was able to verify this in a simple test app that had a custom view implementing:

- (void)awakeFromNib {
  NSPressureConfiguration* c = [[[NSPressureConfiguration alloc] initWithPressureBehavior:NSPressureBehaviorPrimaryClick] autorelease];
  [self setPressureConfiguration:c];
}

When built on the 10.12 SDK, you get the "*** Owner supplied to " blah error. But when building against 10.13, there is no error.

Comment 3 Deleted

Comment 4 Deleted

Comment 5 Deleted

Comment 6 Deleted

Comment 7 by tapted@chromium.org, Mar 12 2018

Labels: Hostlist-CocoaBrowser
Status: Available (was: Untriaged)
[mac triage] available? I guess this will just be fixed by Issue 780980
 Issue 812405  has been merged into this issue.
Summary: Error message: Owner supplied to -[NSTrackingArea initWithRect:options:owner:userInfo:] referenced a deallocating object. Tracking area behavior is undefined. Break on NSTrackingAreaDeallocatingOwnerError to debug (was: Bug in Nib for toolbar causes undefined behavior [at least according to error messages])
Status: Untriaged (was: Available)
Available, but no owner or component? Please find a component, as no one will ever find this without one.
Components: UI>Browser
Status: Available (was: Untriaged)

Sign in to add a comment