electron: Crash in GetLoginItemSettings on macOS 10.13

  • Electron version: 1.7.7, 1.6.12
  • Operating system: macOS 10.13

We’re getting several reports of a native crash on startup for the Slack app, when running the High Sierra beta. One in particular also tried the Trello Electron app and found it crashed in the same way:

Yesterday I install the Trello app from the Mac App Store and it acts like the Slack app, I’m getting the same error from Apple. Something with com.github.electron.framework at GetLoginItemSettings() function.

Process: Slack [21601] 
Path: /Applications/Slack.app/Contents/MacOS/Slack 
Identifier: com.tinyspeck.slackmacgap 
Version: 2.8.0 (4320) 
Code Type: X86-64 (Native) 
Parent Process: ??? [1] 
Responsible: Slack [21601] 
User ID: 501

Date/Time: 2017-09-18 23:43:10.229 +0200 
OS Version: Mac OS X 10.13 (17A360a) 
Report Version: 12 
Anonymous UUID: BE4E1D94-B2A3-7F73-5F03-897E8B01F443

Sleep/Wake UUID: 03C2BD4F-42DF-48E7-BB65-85747C3FA58B

Time Awake Since Boot: 93000 seconds 
Time Since Wake: 17000 seconds

System Integrity Protection: enabled

Crashed Thread: 0 CrBrowserMain Dispatch queue: com.apple.main-thread

Exception Type: EXC_BAD_INSTRUCTION (SIGILL) 
Exception Codes: 0x0000000000000001, 0x0000000000000000

Application Specific Information: 
*** CFEqual() called with NULL first argument ***

Thread 0 Crashed:: CrBrowserMain Dispatch queue: com.apple.main-thread 
0 com.apple.CoreFoundation 0x00007fff3d06e73c CFEqual + 620 
1 com.github.electron.framework 0x000000010d761856 0x10d53a000 + 2259030 
2 com.github.electron.framework 0x000000010d7616f2 0x10d53a000 + 2258674 
3 com.github.electron.framework 0x000000010d5d61e8 atom::Browser::GetLoginItemSettings(atom::Browser::LoginItemSettings const&) + 24 
4 com.github.electron.framework 0x000000010d54688d atom::api::App::GetLoginItemSettings(mate::Arguments*) + 61 
5 com.github.electron.framework 0x000000010d5512a9 0x10d53a000 + 94889 
6 com.github.electron.framework 0x000000010d55126e 0x10d53a000 + 94830 
7 com.github.electron.framework 0x000000010d551244 0x10d53a000 + 94788 
8 com.github.electron.framework 0x000000010d55120f base::internal::Invoker<base::internal::BindState<atom::Browser::LoginItemSettings (atom::api::App::*)(mate::Arguments*)>, atom::Browser::LoginItemSettings (atom::api::App*, mate::Arguments*)>::Run(base::internal::BindStateBase*, atom::api::App*&&, mate::Arguments*&&) + 31 
9 com.github.electron.framework 0x000000010d550f8f 0x10d53a000 + 94095 
10 com.github.electron.framework 0x000000010d550c99 0x10d53a000 + 93337 
11 com.github.electron.framework 0x000000010d550b4c mate::internal::Dispatcher<atom::Browser::LoginItemSettings (atom::api::App*, mate::Arguments*)>::DispatchToCallback(v8::FunctionCallbackInfo<v8::Value> const&) + 124 
12 libnode.dylib 0x0000000111a00d55 0x111805000 + 2080085 
13 libnode.dylib 0x0000000111ab1d18 0x111805000 + 2805016 
14 libnode.dylib 0x0000000111ab1271 0x111805000 + 2802289 
15 ??? 0x000027bbb9e843a7 0 + 43687231374247 
16 ??? 0x000027bbba429d8e 0 + 43687237295502 
17 ??? 0x000027bbba429a84 0 + 43687237294724 
18 ??? 0x000027bbb9e85cd5 0 + 43687231380693 
19 ??? 0x000027bbb9f0915a 0 + 43687231918426 
20 ??? 0x000027bbb9ef23f8 0 + 43687231824888 
21 ??? 0x000027bbba3a3ff2 0 + 43687236747250 
22 ??? 0x000027bbba3a3dea 0 + 43687236746730 
23 ??? 0x000027bbba2f957b 0 + 43687236048251 
24 ??? 0x000027bbba429822 0 + 43687237294114 
25 ??? 0x000027bbba2f957b 0 + 43687236048251 
26 ??? 0x000027bbba4042ea 0 + 43687237141226 
27 ??? 0x000027bbba40419c 0 + 43687237140892 
28 ??? 0x000027bbba2f957b 0 + 43687236048251 
29 ??? 0x000027bbba42962b 0 + 43687237293611 
30 ??? 0x000027bbba4286c4 0 + 43687237289668 
31 ??? 0x000027bbb9e85cd5 0 + 43687231380693 
32 ??? 0x000027bbb9ef1ac3 0 + 43687231822531 
33 ??? 0x000027bbb9eb65c1 0 + 43687231579585 
34 libnode.dylib 0x0000000111c7e4a5 0x111805000 + 4691109 
35 libnode.dylib 0x0000000111c7e209 v8::internal::Execution::Call(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*) + 169 
36 libnode.dylib 0x0000000111a1fd5b v8::Function::Call(v8::Local<v8::Context>, v8::Local<v8::Value>, int, v8::Local<v8::Value>*) + 459 
37 libnode.dylib 0x00000001118df8f6 node::MakeCallback(node::Environment*, v8::Local<v8::Value>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*) + 726 
38 libnode.dylib 0x00000001118dfe58 node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*) + 104 
39 libnode.dylib 0x00000001118dfdbf node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::String>, int, v8::Local<v8::Value>*) + 95 
40 libnode.dylib 0x00000001118dfd30 node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, char const*, int, v8::Local<v8::Value>*) + 80 
41 com.github.electron.framework 0x000000010d63375a mate::internal::CallMethodWithArgs(v8::Isolate*, v8::Local<v8::Object>, char const*, std::__1::vector<v8::Local<v8::Value>, std::__1::allocator<v8::Local<v8::Value> > >*) + 74 
42 com.github.electron.framework 0x000000010d54c1a9 0x10d53a000 + 74153 
43 com.github.electron.framework 0x000000010d5a81ab 0x10d53a000 + 450987 
44 com.github.electron.framework 0x000000010d5a8114 0x10d53a000 + 450836 
45 com.github.electron.framework 0x000000010d59f47d 0x10d53a000 + 414845 
46 com.github.electron.framework 0x000000010d5a093e atom::api::WebContents::DocumentLoadedInFrame(content::RenderFrameHost*) + 62 
47 com.github.electron.framework 0x000000010d5a0960 non-virtual thunk to atom::api::WebContents::DocumentLoadedInFrame(content::RenderFrameHost*) + 16 
48 com.github.electron.framework 0x000000010dd4cc74 0x10d53a000 + 8465524 
49 com.github.electron.framework 0x000000010dd4ca96 0x10d53a000 + 8465046 
50 com.github.electron.framework 0x000000010dd4c146 0x10d53a000 + 8462662 
51 com.github.electron.framework 0x000000010dbbb871 0x10d53a000 + 6822001 
52 com.github.electron.framework 0x000000010e23f98b 0x10d53a000 + 13654411 
53 com.github.electron.framework 0x000000010d79b351 0x10d53a000 + 2495313 
54 com.github.electron.framework 0x000000010d76df26 0x10d53a000 + 2309926 
55 com.github.electron.framework 0x000000010d76e1fc 0x10d53a000 + 2310652 
56 com.github.electron.framework 0x000000010d76e543 0x10d53a000 + 2311491 
57 com.github.electron.framework 0x000000010d77188d 0x10d53a000 + 2324621 
58 com.github.electron.framework 0x000000010d72e73a 0x10d53a000 + 2049850 
59 com.github.electron.framework 0x000000010d771304 0x10d53a000 + 2323204 
60 com.apple.CoreFoundation 0x00007fff3d0f56c1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 
61 com.apple.CoreFoundation 0x00007fff3d1af2cc __CFRunLoopDoSource0 + 108 
62 com.apple.CoreFoundation 0x00007fff3d0d8160 __CFRunLoopDoSources0 + 208 
63 com.apple.CoreFoundation 0x00007fff3d0d75dd __CFRunLoopRun + 1293 
64 com.apple.CoreFoundation 0x00007fff3d0d6e43 CFRunLoopRunSpecific + 483 
65 com.apple.HIToolbox 0x00007fff3c3f6866 RunCurrentEventLoopInMode + 286 
66 com.apple.HIToolbox 0x00007fff3c3f65d6 ReceiveNextEventCommon + 613 
67 com.apple.HIToolbox 0x00007fff3c3f6354 _BlockUntilNextEventMatchingListInModeWithFilter + 64 
68 com.apple.AppKit 0x00007fff3a6f444f _DPSNextEvent + 2085 
69 com.apple.AppKit 0x00007fff3ae89508 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 3044 
70 com.apple.AppKit 0x00007fff3a6e925d -[NSApplication run] + 764 
71 com.github.electron.framework 0x000000010d7720de 0x10d53a000 + 2326750 
72 com.github.electron.framework 0x000000010d77174c 0x10d53a000 + 2324300 
73 com.github.electron.framework 0x000000010d76dc8e 0x10d53a000 + 2309262 
74 com.github.electron.framework 0x000000010d783653 0x10d53a000 + 2397779 
75 com.github.electron.framework 0x000000010d9d387b 0x10d53a000 + 4823163 
76 com.github.electron.framework 0x000000010d9d36d0 0x10d53a000 + 4822736 
77 com.github.electron.framework 0x000000010d9d5e12 0x10d53a000 + 4832786 
78 com.github.electron.framework 0x000000010d9cf7ac 0x10d53a000 + 4806572 
79 com.github.electron.framework 0x000000010d93530d 0x10d53a000 + 4174605 
80 com.github.electron.framework 0x000000010d934406 0x10d53a000 + 4170758 
81 com.github.electron.framework 0x000000010d53bd07 AtomMain + 71 
82 com.tinyspeck.slackmacgap 0x000000010cd38f26 main + 38 
83 libdyld.dylib 0x00007fff645d0145 start + 1

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Comments: 51 (8 by maintainers)

Most upvoted comments

If anyone’s looking for a workaround, apparently Slack has an alpha where it is no longer crashing: http://slack-ssb-updates.s3.amazonaws.com/support-test/Slack-3.0.0-alpha1709277b512d6-macOS.zip

can confirm that with this update Slack is working again for me

TL;DR for people who don’t want to read whole bunch of stuff, what helped:

rm ~/Library/Application\ Support/com.apple.backgroundtaskmanagementagent/backgrounditems.btm

It looks like the path of the backgrounditems.btm file is here:

/Users/$your_user/Library/Application Support/com.apple.backgroundtaskmanagementagent/backgrounditems.btm

found via

sudo find / -name backgrounditems.btm -not -path '*TimeMachine*'

@vanshg thanks for looking. Dont know how to adjust the visibility of the bug. Perhaps open your own?

here’s what the report says:

Login Item corrupted and can not be deleted from Users & Groups after updating to macOS High Sierra


Summary:
My Login Items have been corrupted; they show up as `Unknown` with a yellow explanation / warning symbol.  I am unable to delete Login Items from the System Preferences UI.  Editing `plist` files that have been previously associated with the Login Items preference pane has no effect.

Various OSX API's that attempt to read the users Login items are also failing.
A limited list of apps that are currently crashing because the API to fetch the user's login items is broken:

- Google Chrome
- Most apps based on google chrome / Github's eletron framework
- Viscosity vpn


Steps to Reproduce:

0) Be running macOS Sierra.
1) Upgrade to High Sierra


Expected Results:
I expect that my login items are not corrupted / lost / damaged.
I expect that the APIs built into OSX do not result in a crash.  Here is a truncated stack trace.  The same one (and similar ones) is available in the github issues link below.

OS Version: Mac OS X 10.13 (17A405)

Time Awake Since Boot: 450 seconds

System Integrity Protection: enabled

Crashed Thread: 0 CrBrowserMain Dispatch queue: com.apple.main-thread

Exception Type: EXC_BAD_INSTRUCTION (SIGILL) Exception Codes: 0x0000000000000001, 0x0000000000000000 Exception Note: EXC_CORPSE_NOTIFY

Termination Signal: Illegal instruction: 4 Termination Reason: Namespace SIGNAL, Code 0x4 Terminating Process: exc handler [0]

Application Specific Information: *** CFEqual() called with NULL first argument ***

Thread 0 Crashed:: CrBrowserMain Dispatch queue: com.apple.main-thread 0 com.apple.CoreFoundation 0x00007fff4edbc73c CFEqual + 620



Actual Results:
When I click the `-` button on the system UI, i expect the `Unknown` entry to be removed.  It is not.  When i click the `Hide` check box, i get *another* `Unknown` entry in the list.

When I click the `-` Button in the UI, i see multiple lines in the `Console.app`.  They look like this:

Error:18446744073709551581 File:/BuildRoot/Library/Caches/com.apple.xbs/Sources/AccountsPref/AccountsPref-285/LoginItem.m Line:68


and come from the `com.apple.preferences.users.remoteservice` process.




Version/Build:
OS Version:            Mac OS X 10.13 (17A405)


Configuration:
Here's some additional information documenting this problem:

https://github.com/electron/electron/issues/10561#issuecomment-334634029

https://discussions.apple.com/thread/8096021
https://discussions.apple.com/thread/8086931
https://discussions.apple.com/thread/8089760

Sorry for my bad english!

I hope I was helpful

@flindeberg, yes that’s the case.

however there is somebody that claims to have a solution. I have not yet tested this…

Okay, they found the problem a couple of days ago. They know how to fix it, but as far as I know, they're not sure what caused it to happen in the first place (migration assistant is my guess).
 
Anyway, search out and destroy a file called backgrounditems.btm then reboot. The login panel should be cleared out. The senior advisor and I rebooted three times with a test app inserted through the normal login panel procedures and all was well. I added back my normal items and they'e still working just fine.
 
I'm on a new/used iMac late 2015 2.8ghz, I-5, running 10.13
 
Good luck.

from: https://discussions.apple.com/message/32423169?ac_cid=tw123456#32423169

Regarding Slack crashes, reply from their support team:

As it turns out, we've identified a bug in this version of Slack, and the good news is that we've found a solution!

Currently, the fix is available in version 3.0.0 of Slack which is presently still in beta. The regular release will be coming soon, but if you'd like to get the fix right away, you can download the beta here: https://slack.com/beta/osx.

This issue is back for me on 10.13.1 (17B48).

The error from console.app is:

### Error:18446744073709551581 File:/BuildRoot/Library/Caches/com.apple.xbs/Sources/AccountsPref/AccountsPref-285/LoginItem.m Line:68

It is preventing Slack from starting…

Here’s the stack trace:

Process:               Slack [31246]
Path:                  /Applications/Slack.app/Contents/MacOS/Slack
Identifier:            com.tinyspeck.slackmacgap
Version:               2.8.2 (4331)
App Item ID:           803453959
App External ID:       824071960
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           Slack [31246]
User ID:               501

Date/Time:             2017-11-05 12:24:27.271 -0800
OS Version:            Mac OS X 10.13.1 (17B48)
Report Version:        12
Bridge OS Version:     3.0 (14Y661)
Anonymous UUID:        63597570-A405-33E8-EEA0-EE3FDB7D5E10

Sleep/Wake UUID:       B0EA3282-6FDC-4116-84EC-40124798980E

Time Awake Since Boot: 400000 seconds
Time Since Wake:       350000 seconds

System Integrity Protection: enabled

Crashed Thread:        0  CrBrowserMain  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_INSTRUCTION (SIGILL)
Exception Codes:       0x0000000000000001, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Signal:    Illegal instruction: 4
Termination Reason:    Namespace SIGNAL, Code 0x4
Terminating Process:   exc handler [0]

Application Specific Information:
*** CFEqual() called with NULL first argument ***

Thread 0 Crashed:: CrBrowserMain  Dispatch queue: com.apple.main-thread
0   com.apple.CoreFoundation      	0x00007fff4415a89c CFEqual + 620
1   com.github.electron.framework 	0x00000001062ca976 0x1060b3000 + 2193782
2   com.github.electron.framework 	0x00000001062ca812 0x1060b3000 + 2193426
3   com.github.electron.framework 	0x000000010614eb18 atom::Browser::GetLoginItemSettings(atom::Browser::LoginItemSettings const&) + 24
4   com.github.electron.framework 	0x00000001060bfa0d atom::api::App::GetLoginItemSettings(mate::Arguments*) + 61
5   com.github.electron.framework 	0x00000001060ca429 0x1060b3000 + 95273
6   com.github.electron.framework 	0x00000001060ca3ee 0x1060b3000 + 95214
7   com.github.electron.framework 	0x00000001060ca3c4 0x1060b3000 + 95172
8   com.github.electron.framework 	0x00000001060ca38f base::internal::Invoker<base::internal::BindState<atom::Browser::LoginItemSettings (atom::api::App::*)(mate::Arguments*)>, atom::Browser::LoginItemSettings (atom::api::App*, mate::Arguments*)>::Run(base::internal::BindStateBase*, atom::api::App*&&, mate::Arguments*&&) + 31
9   com.github.electron.framework 	0x00000001060ca10f 0x1060b3000 + 94479
10  com.github.electron.framework 	0x00000001060c9e19 0x1060b3000 + 93721
11  com.github.electron.framework 	0x00000001060c9ccc mate::internal::Dispatcher<atom::Browser::LoginItemSettings (atom::api::App*, mate::Arguments*)>::DispatchToCallback(v8::FunctionCallbackInfo<v8::Value> const&) + 124
12  libnode.dylib                 	0x000000010a560d85 0x10a365000 + 2080133
13  libnode.dylib                 	0x000000010a611d48 0x10a365000 + 2805064

<snip>

Unfortunately, the backgrounditems.btm file is no longer present in the path it was prior.

For transparency:

https://openradar.appspot.com/radar?id=4972010287398912 https://openradar.appspot.com/radar?id=5052010898391040

Alright. I’ve finally discovered what’s been causing these “unknown” login items to appear, at least in my case. I am a Multiplatform mobile developer so I work with both iOS and Android devices, as such I use the Android File Transfer app to copy data to/from my Nexus 6p. However AFT has an annoying habit of always adding itself to the Startup Items. So I used this hack to prevent it from doing so. My guess is that whenever I run Android File Transfer, it tries to re-add its (nonexistent, since I renamed it) startup item, which causes the Unknown items to appear. So for now I’ve switched to using the command-line adb tool to copy files to/from my device, which is a bit clunky but it works. I suspect that other apps that manipulate their login items but somehow screw up in doing so is causing this for other people.

Can also confirm that the solution @kquinsland posted above worked perfectly!! Note that removing that file will remove all items that are currently in the Login Items list in System Preferences so be sure and make a note of the apps/other things that you have in there right now so that you can re-set them up, BUT it DOES get rid of all the “Unknown” items! Now all of the apps that were crashing on me (Chrome, Viscosity, Slack, etc.) are working once again.

@vanshg The same thing just happened to me. The worst day of my life. At least I know what’s wrong.