Atom crashes at startup - MacOS 11.0, "Big Sur”, Apple Silicon
pearcy opened this issue · comments
Prerequisites
- [ X] Put an X between the brackets on this line if you have done all of the following:
- Reproduced the problem in Safe Mode: https://flight-manual.atom.io/hacking-atom/sections/debugging/#using-safe-mode
- Followed all applicable steps in the debugging guide: https://flight-manual.atom.io/hacking-atom/sections/debugging/
- Checked the FAQs on the message board for common solutions: https://discuss.atom.io/c/faq
- Checked that your issue isn't already filed: https://github.com/issues?utf8=✓&q=is%3Aissue+user%3Aatom
- Checked that there is not already an Atom package that provides the described functionality: https://atom.io/packages
Description
Atom crashes on startup on the Apple ARM DTK (Developer Transition Kit, ARM64), MacOS 11
Labels: Mac-BigSur
Labels: Mac-Arm64
Steps to Reproduce
- Crashes at startup
Expected behavior:
Open Atom Editor
Actual behavior:
Crashes
Reproduces how often:
Every time.
Versions
I tried on all three different builds (Atom stable, beta and nightly) downloaded on 7/15/20
Stable Version
Atom : 1.49.0
Electron: 5.0.13
Chrome : 73.0.3683.121
Node : 12.0.0
OS
MacOS 11.0, "Big Sur”, Apple Silicon, ARM64
Labels: Mac-BigSur
Labels: Mac-Arm64
Additional Information
Seems similar to issue with other Electron based applications.
Link to similar issue
https://bugs.chromium.org/p/chromium/issues/detail?id=1098899
The issue here is that Chromium hardcodes macOS page size to 4 KB, whereas on Apple silicon devices it's actually 16 KB. We managed to fix it in our fork of Electron by changing code that uses hardcoded page size: Unity-Technologies/electron@79a9fa9
*** when running in safe mode - from Stable Build
/Applications/Atom.app/Contents/MacOS/Atom --safe
<--- Last few GCs --->
<--- JS stacktrace --->
Fatal process OOM in insufficient memory to create an Isolate
20764
*** crash report from - Nightly Build
Process: Atom Nightly Helper [5461]
Path: /Applications/Atom Nightly.app/Contents/Frameworks/Atom Nightly Helper.app/Contents/MacOS/Atom Nightly Helper
Identifier: Atom Nightly Helper
Version: 0
Code Type: X86-64 (Translated)
Parent Process: Atom Nightly [5442]
Responsible: Atom Nightly [5442]
User ID: 502
Date/Time: 2020-07-15 21:50:58.307 -0700
OS Version: Mac OS X 10.16 (20A5299w)
Report Version: 12
Anonymous UUID: 046B23A9-EBF5-1015-D3CD-5146E2CA0F1E
Sleep/Wake UUID: 41F34368-CD91-48AC-8AEF-80C8680A17FE
Time Awake Since Boot: 170000 seconds
Time Since Wake: 49000 seconds
System Integrity Protection: enabled
Crashed Thread: 0 CrRendererMain 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 [5461]
Thread 0 Crashed:: CrRendererMain Dispatch queue: com.apple.main-thread
0 com.github.Electron.framework 0x00000001107f1cd2 0x10c7e1000 + 67177682
1 com.github.Electron.framework 0x000000010da326f0 0x10c7e1000 + 19207920
2 com.github.Electron.framework 0x000000010da32650 0x10c7e1000 + 19207760
3 com.github.Electron.framework 0x000000010dab7a3b 0x10c7e1000 + 19753531
For reference, electron seem to be aware of this: electron/electron#24319
It looks like Electron now has an official upgrade path for Apple Silicon https://www.electronjs.org/blog/apple-silicon