rogual / neovim-dot-app

Mac OS X GUI for Neovim
1.13k stars 62 forks source link

SecTaskLoadEntitlements failed error=22 and crash on launch #176

Closed hboon closed 8 years ago

hboon commented 8 years ago

Tried to open Neovim.app by double clicking on the app and I see this in the console:

Nov/8/15 11:33:03.171 AM appleeventsd[57]: SecTaskLoadEntitlements failed error=22

The app launches very briefly and crashes.

Referring to #165, I generated a trace. Rebuilding didn't help.

$ lldb /usr/local/Cellar/neovim-dot-app/HEAD/Neovim.app -- --args --cwd $PWD ~/n/wip.md 

(lldb) target create "/usr/local/Cellar/neovim-dot-app/HEAD/Neovim.app"
Current executable set to '/usr/local/Cellar/neovim-dot-app/HEAD/Neovim.app' (x86_64).
(lldb) settings set -- target.run-args  "--args" "--cwd" "/Users/hboon" "/Users/hboon/n/wip.md"
(lldb) r
Process 66552 launched: '/usr/local/Cellar/neovim-dot-app/HEAD/Neovim.app/Contents/MacOS/Neovim' (x86_64)
Process 66552 stopped
* thread #1: tid = 0x381d4b, 0x00007fff9b14daaa libsystem_kernel.dylib`write + 10, queue = 'com.apple.main-thread', stop reason = signal SIGPIPE
    frame #0: 0x00007fff9b14daaa libsystem_kernel.dylib`write + 10
libsystem_kernel.dylib`write:
->  0x7fff9b14daaa <+10>: jae    0x7fff9b14dab4            ; <+20>
    0x7fff9b14daac <+12>: movq   %rax, %rdi
    0x7fff9b14daaf <+15>: jmp    0x7fff9b147414            ; cerror
    0x7fff9b14dab4 <+20>: retq   
(lldb) bt
* thread #1: tid = 0x381d4b, 0x00007fff9b14daaa libsystem_kernel.dylib`write + 10, queue = 'com.apple.main-thread', stop reason = signal SIGPIPE
  * frame #0: 0x00007fff9b14daaa libsystem_kernel.dylib`write + 10
    frame #1: 0x00000001000014e8 Neovim`Client::send(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) + 520
    frame #2: 0x000000010001947a Neovim`RPC* Client::call<msgpack::v1::type::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, msgpack::v1::type::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >) + 1450
    frame #3: 0x0000000100022a36 Neovim`Vim::vim_command(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) + 214
    frame #4: 0x00000001000449fc Neovim`-[VimView setFont:] + 1356
    frame #5: 0x0000000100043cf3 Neovim`-[VimView initWithFrame:vim:] + 659
    frame #6: 0x00000001000440c3 Neovim`-[VimView initWithCellSize:vim:] + 227
    frame #7: 0x000000010004c90b Neovim`-[VimWindow initWithArgs:] + 667
    frame #8: 0x000000010002710d Neovim`-[AppDelegate newWindowWithArgs:] + 61
    frame #9: 0x0000000100028866 Neovim`-[AppDelegate applicationDidFinishLaunching:] + 1510
    frame #10: 0x00007fff87fd7c9c CoreFoundation`__CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
    frame #11: 0x00007fff87fd7c2f CoreFoundation`___CFXRegistrationPost_block_invoke + 63
    frame #12: 0x00007fff87fd7ba7 CoreFoundation`_CFXRegistrationPost + 407
    frame #13: 0x00007fff87fd7912 CoreFoundation`___CFXNotificationPost_block_invoke + 50
    frame #14: 0x00007fff87f946d2 CoreFoundation`-[_CFXNotificationRegistrar find:object:observer:enumerator:] + 1922
    frame #15: 0x00007fff87f93925 CoreFoundation`_CFXNotificationPost + 693
    frame #16: 0x00007fff986ad0fa Foundation`-[NSNotificationCenter postNotificationName:object:userInfo:] + 66
    frame #17: 0x00007fff94450ea1 AppKit`-[NSApplication _postDidFinishNotification] + 297
    frame #18: 0x00007fff94450c0b AppKit`-[NSApplication _sendFinishLaunchingNotification] + 203
    frame #19: 0x00007fff9430bdc1 AppKit`-[NSApplication(NSAppleEventHandling) _handleAEOpenEvent:] + 557
    frame #20: 0x00007fff9430b86b AppKit`-[NSApplication(NSAppleEventHandling) _handleCoreEvent:withReplyEvent:] + 250
    frame #21: 0x00007fff986fba8d Foundation`-[NSAppleEventManager dispatchRawAppleEvent:withRawReply:handlerRefCon:] + 290
    frame #22: 0x00007fff986fb907 Foundation`_NSAppleEventManagerGenericHandler + 102
    frame #23: 0x00007fff9ac8e1b5 AE`aeDispatchAppleEvent(AEDesc const*, AEDesc*, unsigned int, unsigned char*) + 531
    frame #24: 0x00007fff9ac8df3c AE`dispatchEventAndSendReply(AEDesc const*, AEDesc*) + 31
    frame #25: 0x00007fff9ac8de58 AE`aeProcessAppleEvent + 288
    frame #26: 0x00007fff96a52ef5 HIToolbox`AEProcessAppleEvent + 55
    frame #27: 0x00007fff94307230 AppKit`_DPSNextEvent + 2245
    frame #28: 0x00007fff943061c5 AppKit`-[NSApplication _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 454
    frame #29: 0x00007fff942fad28 AppKit`-[NSApplication run] + 682
    frame #30: 0x0000000100030d3a Neovim`main + 186
    frame #31: 0x00007fff8cae25ad libdyld.dylib`start + 1
rogual commented 8 years ago

Could be a bug, but your LLDB invocation is wrong. Could you try with:

lldb /usr/local/Cellar/neovim-dot-app/HEAD/Neovim.app -- --cwd $PWD ~/n/wip.md

If it still happens, maybe add -u NONE as well, to rule out your local config?

hboon commented 8 years ago

Ok. I presume -u NONE goes to the end. I get this:

$ lldb /usr/local/Cellar/neovim-dot-app/HEAD/Neovim.app -- --cwd $PWD ~/n/wip.md -u NONE

(lldb) target create "/usr/local/Cellar/neovim-dot-app/HEAD/Neovim.app"
Current executable set to '/usr/local/Cellar/neovim-dot-app/HEAD/Neovim.app' (x86_64).
(lldb) settings set -- target.run-args  "--cwd" "/Users/hboon" "/Users/hboon/n/wip.md" "-u" "NONE"
(lldb) r
Process 12482 launched: '/usr/local/Cellar/neovim-dot-app/HEAD/Neovim.app/Contents/MacOS/Neovim' (x86_64)
Process 12482 stopped
* thread #1: tid = 0x456ab7, 0x00007fff9b14daaa libsystem_kernel.dylib`write + 10, queue = 'com.apple.main-thread', stop reason = signal SIGPIPE
    frame #0: 0x00007fff9b14daaa libsystem_kernel.dylib`write + 10
libsystem_kernel.dylib`write:
->  0x7fff9b14daaa <+10>: jae    0x7fff9b14dab4            ; <+20>
    0x7fff9b14daac <+12>: movq   %rax, %rdi
    0x7fff9b14daaf <+15>: jmp    0x7fff9b147414            ; cerror
    0x7fff9b14dab4 <+20>: retq   
(lldb) bt
* thread #1: tid = 0x456ab7, 0x00007fff9b14daaa libsystem_kernel.dylib`write + 10, queue = 'com.apple.main-thread', stop reason = signal SIGPIPE
  * frame #0: 0x00007fff9b14daaa libsystem_kernel.dylib`write + 10
    frame #1: 0x00000001000014e8 Neovim`Client::send(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) + 520
    frame #2: 0x000000010001947a Neovim`RPC* Client::call<msgpack::v1::type::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, msgpack::v1::type::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >) + 1450
    frame #3: 0x0000000100022a36 Neovim`Vim::vim_command(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) + 214
    frame #4: 0x00000001000449fc Neovim`-[VimView setFont:] + 1356
    frame #5: 0x0000000100043cf3 Neovim`-[VimView initWithFrame:vim:] + 659
    frame #6: 0x00000001000440c3 Neovim`-[VimView initWithCellSize:vim:] + 227
    frame #7: 0x000000010004c90b Neovim`-[VimWindow initWithArgs:] + 667
    frame #8: 0x000000010002710d Neovim`-[AppDelegate newWindowWithArgs:] + 61
    frame #9: 0x0000000100028866 Neovim`-[AppDelegate applicationDidFinishLaunching:] + 1510
    frame #10: 0x00007fff87fd7c9c CoreFoundation`__CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
    frame #11: 0x00007fff87fd7c2f CoreFoundation`___CFXRegistrationPost_block_invoke + 63
    frame #12: 0x00007fff87fd7ba7 CoreFoundation`_CFXRegistrationPost + 407
    frame #13: 0x00007fff87fd7912 CoreFoundation`___CFXNotificationPost_block_invoke + 50
    frame #14: 0x00007fff87f946d2 CoreFoundation`-[_CFXNotificationRegistrar find:object:observer:enumerator:] + 1922
    frame #15: 0x00007fff87f93925 CoreFoundation`_CFXNotificationPost + 693
    frame #16: 0x00007fff986ad0fa Foundation`-[NSNotificationCenter postNotificationName:object:userInfo:] + 66
    frame #17: 0x00007fff94450ea1 AppKit`-[NSApplication _postDidFinishNotification] + 297
    frame #18: 0x00007fff94450c0b AppKit`-[NSApplication _sendFinishLaunchingNotification] + 203
    frame #19: 0x00007fff9430bdc1 AppKit`-[NSApplication(NSAppleEventHandling) _handleAEOpenEvent:] + 557
    frame #20: 0x00007fff9430b86b AppKit`-[NSApplication(NSAppleEventHandling) _handleCoreEvent:withReplyEvent:] + 250
    frame #21: 0x00007fff986fba8d Foundation`-[NSAppleEventManager dispatchRawAppleEvent:withRawReply:handlerRefCon:] + 290
    frame #22: 0x00007fff986fb907 Foundation`_NSAppleEventManagerGenericHandler + 102
    frame #23: 0x00007fff9ac8e1b5 AE`aeDispatchAppleEvent(AEDesc const*, AEDesc*, unsigned int, unsigned char*) + 531
    frame #24: 0x00007fff9ac8df3c AE`dispatchEventAndSendReply(AEDesc const*, AEDesc*) + 31
    frame #25: 0x00007fff9ac8de58 AE`aeProcessAppleEvent + 288
    frame #26: 0x00007fff96a52ef5 HIToolbox`AEProcessAppleEvent + 55
    frame #27: 0x00007fff94307230 AppKit`_DPSNextEvent + 2245
    frame #28: 0x00007fff943061c5 AppKit`-[NSApplication _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 454
    frame #29: 0x00007fff942fad28 AppKit`-[NSApplication run] + 682
    frame #30: 0x0000000100030d3a Neovim`main + 186
    frame #31: 0x00007fff8cae25ad libdyld.dylib`start + 1
(lldb) 
rogual commented 8 years ago

OK, first let's make sure it's not just choking on the arguments:

lldb /usr/local/Cellar/neovim-dot-app/HEAD/Neovim.app -- -u NONE

Still not working? Perhaps your Homebrew install of Neovim.app is messed up. Try:

brew reinstall --HEAD neovim-dot-app

hboon commented 8 years ago

Just tried both. Same thing. Actually installed a few weeks ago and had the same error, rebuild then didn't help too.

Also:

Let me know what else I can check? Thanks.

rogual commented 8 years ago

Maybe reinstall Neovim itself, to make sure you have the latest version?

Failing that, would you be willing to try compiling Neovim.app yourself?

git clone git@github.com:rogual/neovim-dot-app.git
cd neovim-dot-app
NVIM=<path to your nvim executable> make

Failing THAT I'd try with a self-compiled neovim, in case your homebrew versioning is somehow screwed up.

The SecLoadEntitlements thing is, after some quick research, an error I don't understand that is usually associated with Java. So I'd say either it's a red herring or some other software on your machine is interfering somehow.

hboon commented 8 years ago

I cloned the neovim-dot-app repo, added a few NSLogs to see what might have gone wrong and it looked likes like certain sending certain vim commands such as redraw caused an error, like this:

mVim->vim_command("redraw!");

I then rebuilt neovim and it worked :) Unfortunately. I can't reproduce the problem after that to nail down the issue.

I'm still getting the SecLoadEntitlements warnings in the console which definitely appears while launching neovim.app. It looks like they are harmless for now.

Thanks for the help! I'll replace MacVim.app with it and see what happens.