electron / notarize

Notarize your macOS Electron Apps
MIT License
136 stars 32 forks source link

Notarize crashes m1 macbook pro #102

Closed ArmelChesnais closed 1 year ago

ArmelChesnais commented 2 years ago

I used to deploy/notarize my electron app on an intel macbook pro (intel 2015). It's run into the recalled battery issues for that model, so I've replaced it with a MacBook Pro (13-inch, M1, 2020) while I wait for it to be repaired.

Issue is however that electron-notarize appears to completely crash the M1 (full shutdown and restart) if it is interrupted.

The computer going to sleep interrupts it, causing the crash. Disabling sleep seems to indicate that notarize simply hangs forever sometimes, and never resolves (had it sitting for over an hour, which I'd never seen on the intel macbook). Trying to ctrl-C out of the process also interrupts notarize, causing the crash. Of note, notarize doesn't seem to hang every time, as I've had one build that did eventually resolve, but all previous and subsequent ones seem to get stuck indefinitely.

electron-notarize 1.2.1 node v14.16.1 electron-builder 23.0.2

notarize script as follows:

require('dotenv').config();
const { notarize } = require('electron-notarize');

exports.default = async function notarizing(context) {
  console.log(`starting notarizing`, context)

  const { electronPlatformName, appOutDir } = context;  

  if (electronPlatformName !== 'darwin') {
    return;
  }

  const appName = context.packager.appInfo.productFilename;

  console.log(`doing notarize`)
  const notarizeResult = await notarize({
    appBundleId: context.packager.info._configuration.appId,
    appPath: `${appOutDir}/${appName}.app`,
    appleId: process.env.APPLEID,
    appleIdPassword: process.env.APPLEIDPASS,
  });

  console.log(`notarize complete`)

  return notarizeResult
};

upon restart, all I see in terminal is the following from the restored terminal window:

[...assorted building/packaging logs]
starting notarizing {
  [...snip]
}
doing notarize

[Restored Mar 29, 2022 at 4:06:17 PM]

Mac crash report as follows:

panic(cpu 1 caller 0xfffffe002c5febf8): Sleep transition timed out after 35 seconds while calling power state change callbacks. Suspected bundle: com.apple.iokit.IO80211Family. Thread 0x40afe.
Debugger message: panic
Memory ID: 0x6
OS release type: User
OS version: 21D62
Kernel version: Darwin Kernel Version 21.3.0: Wed Jan  5 21:37:58 PST 2022; root:xnu-8019.80.24~20/RELEASE_ARM64_T8101
Fileset Kernelcache UUID: 7C53FB49FDE6F710235278E472070819
Kernel UUID: F5893147-A9D2-3D60-B5A4-E4AE9BA0A628
iBoot version: iBoot-7429.81.3
secure boot?: YES
Paniclog version: 13
KernelCache slide: 0x00000000244c4000
KernelCache base:  0xfffffe002b4c8000
Kernel slide:      0x0000000024cf4000
Kernel text base:  0xfffffe002bcf8000
Kernel text exec slide: 0x0000000024ddc000
Kernel text exec base:  0xfffffe002bde0000
mach_absolute_time: 0x18a277486ea
Epoch Time:        sec       usec
  Boot    : 0x6242530f 0x00042514
  Sleep   : 0x00000000 0x00000000
  Wake    : 0x00000000 0x00000000
  Calendar: 0x62436691 0x00076ffe

Zone info:
Foreign   : 0xfffffe0033510000 - 0xfffffe0033524000
Native    : 0xfffffe100061c000 - 0xfffffe300061c000
Readonly  : 0xfffffe14cd2e8000 - 0xfffffe1666c7c000
Metadata  : 0xfffffe8305c1c000 - 0xfffffe8311b54000
Bitmaps   : 0xfffffe8305c20000 - 0xfffffe8308828000
CORE 0 recently retired instr at 0xfffffe002bf6b90c
CORE 1 recently retired instr at 0xfffffe002bf6a320
CORE 2 recently retired instr at 0xfffffe002bf6b90c
CORE 3 recently retired instr at 0xfffffe002bf6b90c
CORE 4 recently retired instr at 0xfffffe002bf6b910
CORE 5 recently retired instr at 0xfffffe002bf6b910
CORE 6 recently retired instr at 0xfffffe002bf6b910
CORE 7 recently retired instr at 0xfffffe002bf6b910
CORE 0 PVH locks held: None
CORE 1 PVH locks held: None
CORE 2 PVH locks held: None
CORE 3 PVH locks held: None
CORE 4 PVH locks held: None
CORE 5 PVH locks held: None
CORE 6 PVH locks held: None
CORE 7 PVH locks held: None
CORE 0: PC=0xfffffe002be66e30, LR=0xfffffe002be66e30, FP=0xfffffe6f762cbef0
CORE 1 is the one that panicked. Check the full backtrace for details.
CORE 2: PC=0xfffffe002be66e30, LR=0xfffffe002be66e30, FP=0xfffffe6f7f4bbef0
CORE 3: PC=0xfffffe002be66e30, LR=0xfffffe002be66e30, FP=0xfffffe6f7622bef0
CORE 4: PC=0xfffffe002be66e30, LR=0xfffffe002be66e30, FP=0xfffffe6f7f6bbef0
CORE 5: PC=0xfffffe002be66e30, LR=0xfffffe002be66e30, FP=0xfffffe6f7f27bef0
CORE 6: PC=0xfffffe002be66e30, LR=0xfffffe002be66e30, FP=0xfffffe6f756fbef0
CORE 7: PC=0xfffffe002be66e30, LR=0xfffffe002be66e30, FP=0xfffffe6f7f49bef0
Panicked task 0xfffffe1b339f8678: 0 pages, 545 threads: pid 0: kernel_task
Panicked thread: 0xfffffe16686a5860, backtrace: 0xfffffe6f760eb3e0, tid: 277525
          lr: 0xfffffe002be324c4  fp: 0xfffffe6f760eb450
          lr: 0xfffffe002be32194  fp: 0xfffffe6f760eb4c0
          lr: 0xfffffe002bf71984  fp: 0xfffffe6f760eb4e0
          lr: 0xfffffe002bf6426c  fp: 0xfffffe6f760eb560
          lr: 0xfffffe002bf61cbc  fp: 0xfffffe6f760eb620
          lr: 0xfffffe002bde77f8  fp: 0xfffffe6f760eb630
          lr: 0xfffffe002be31e0c  fp: 0xfffffe6f760eb9d0
          lr: 0xfffffe002be31e0c  fp: 0xfffffe6f760eba40
          lr: 0xfffffe002c644ca8  fp: 0xfffffe6f760eba60
          lr: 0xfffffe002c5febf8  fp: 0xfffffe6f760ebd80
          lr: 0xfffffe002c545a50  fp: 0xfffffe6f760ebdb0
          lr: 0xfffffe002be83998  fp: 0xfffffe6f760ebe30
          lr: 0xfffffe002be849ec  fp: 0xfffffe6f760ebf20
          lr: 0xfffffe002bdf0e78  fp: 0x0000000000000000

last started kext at 977044390: com.apple.driver.driverkit.serial   6.0.0 (addr 0xfffffe002bbd5cd0, size 3432)
loaded kexts:
com.apple.filesystems.autofs    3.0
com.apple.fileutil  20.036.15
com.apple.driver.AppleBiometricServices 1
com.apple.driver.CoreKDL    1
com.apple.driver.AppleTopCaseHIDEventDriver 5020.1
com.apple.driver.BCMWLANFirmware4378.Hashstore  1
com.apple.driver.SEPHibernation 1
com.apple.driver.DiskImages.ReadWriteDiskImage  493.0.0
com.apple.driver.DiskImages.UDIFDiskImage   493.0.0
com.apple.driver.DiskImages.RAMBackingStore 493.0.0
com.apple.driver.DiskImages.FileBackingStore    493.0.0
com.apple.filesystems.apfs  1933.80.3
com.apple.driver.AppleSmartBatteryManager   161.0.0
com.apple.driver.AppleUSBDeviceNCM  5.0.0
com.apple.driver.AppleThunderboltIP 4.0.3
com.apple.driver.AppleALSColorSensor    1.0.0d1
com.apple.driver.AppleFileSystemDriver  3.0.1
com.apple.driver.ApplePMP   1
com.apple.driver.AppleAOPVoiceTrigger   100.1
com.apple.nke.l2tp  1.9
com.apple.filesystems.tmpfs 1
com.apple.driver.AppleSmartIO2  1
com.apple.driver.ApplePMPFirmware   1
com.apple.filesystems.lifs  1
com.apple.IOTextEncryptionFamily    1.0.0
com.apple.filesystems.hfs.kext  582.60.2
com.apple.security.BootPolicy   1
com.apple.BootCache 40
com.apple.AppleFSCompression.AppleFSCompressionTypeZlib 1.0.0
com.apple.AppleFSCompression.AppleFSCompressionTypeDataless 1.0.0d1
com.apple.driver.AppleDPDisplayTCON 1
com.apple.AppleEmbeddedSimpleSPINORFlasher  1
com.apple.driver.AppleSPMIPMU   1.0.1
com.apple.driver.AppleCS42L83Audio  530.2
com.apple.driver.AppleTAS5770LAmp   530.2
com.apple.driver.AppleSummitLCD 1.0.0
com.apple.driver.AppleAVE2  530.3.0
com.apple.driver.AppleMobileDispH13G-DCP    140.0
com.apple.driver.AppleT8020SOCTuner 1
com.apple.driver.AppleT8103CLPCv3   1
com.apple.driver.AppleAVD   555
com.apple.driver.AppleJPEGDriver    4.7.9
com.apple.AGXG13G   188.10
com.apple.driver.AudioDMAController-T8103   100.51
com.apple.driver.usb.AppleSynopsysUSB40XHCI 1
com.apple.driver.AppleSerialShim    1
com.apple.driver.AppleEventLogHandler   1
com.apple.driver.AppleS5L8960XNCO   1
com.apple.driver.AppleT8103PMGR 1
com.apple.driver.AppleS8000AES  1
com.apple.driver.AppleS8000DWI  1.0.0d1
com.apple.driver.AppleInterruptController   1.0.0d1
com.apple.driver.AppleBluetoothModule   1
com.apple.driver.AppleSamsungSerial 1.0.0d1
com.apple.driver.AppleBCMWLANBusInterfacePCIe   1
com.apple.driver.AppleT8020DART 1
com.apple.driver.AppleSynopsysMIPIDSI   1.0.0
com.apple.driver.AppleS5L8920XPWM   1.0.0d1
com.apple.driver.AppleS5L8940XI2C   1.0.0d2
com.apple.driver.AppleSPIMC 1
com.apple.driver.AppleT8101 1
com.apple.driver.AppleM68Buttons    1.0.0d1
com.apple.iokit.IOUserEthernet  1.0.1
com.apple.driver.usb.AppleUSBUserHCI    1
com.apple.iokit.IOKitRegistryCompatibility  1
com.apple.iokit.EndpointSecurity    1
com.apple.driver.AppleDiskImages2   126.60.3
com.apple.AppleSystemPolicy 2.0.0
com.apple.nke.applicationfirewall   402
com.apple.kec.InvalidateHmac    1
com.apple.kec.AppleEncryptedArchive 1
com.apple.driver.driverkit.serial   6.0.0
com.apple.kext.triggers 1.0
com.apple.iokit.IOAVBFamily 1010.2
com.apple.plugin.IOgPTPPlugin   1000.11
com.apple.iokit.IOEthernetAVBController 1.1.0
com.apple.driver.AppleMesaSEPDriver 100.99
com.apple.iokit.IOBiometricFamily   1
com.apple.driver.AppleActuatorDriver    5430.21
com.apple.driver.AppleMultitouchDriver  5430.21
com.apple.driver.AppleHSBluetoothDriver 5020.1
com.apple.driver.IOBluetoothHIDDriver   9.0.0
com.apple.driver.AppleHIDKeyboard   228
com.apple.driver.AppleTrustedAccessory  1
com.apple.iokit.AppleSEPGenericTransfer 1
com.apple.driver.AppleSEPHDCPManager    1.0.1
com.apple.driver.DiskImages.KernelBacked    493.0.0
com.apple.driver.AppleBTM   1.0.1
com.apple.driver.AppleXsanScheme    3
com.apple.driver.AppleConvergedIPCOLYBTControl  1
com.apple.driver.AppleConvergedPCI  1
com.apple.driver.AppleBluetoothDebug    1
com.apple.driver.usb.networking 5.0.0
com.apple.driver.AppleThunderboltUSBDownAdapter 1.0.4
com.apple.driver.AppleThunderboltDPInAdapter    8.5.1
com.apple.driver.AppleThunderboltDPAdapterFamily    8.5.1
com.apple.driver.AppleThunderboltPCIDownAdapter 4.1.1
com.apple.driver.AppleDCPDPTXProxy  1.0.0
com.apple.driver.AppleAOPAudio  102.2
com.apple.nke.ppp   1.9
com.apple.driver.DCPDPFamilyProxy   1
com.apple.driver.AppleBSDKextStarter    3
com.apple.filesystems.hfs.encodings.kext    1
com.apple.AGXFirmwareKextG13GRTBuddy    188.10
com.apple.AGXFirmwareKextRTBuddy64  188.10
com.apple.iokit.IONVMeFamily    2.1.0
com.apple.driver.AppleStockholmControl  1.0.0
com.apple.driver.AppleSPU   1
com.apple.driver.AppleHIDTransportSPI   5400.30
com.apple.driver.AppleHIDTransport  5400.30
com.apple.driver.AppleInputDeviceSupport    5400.30
com.apple.driver.AppleDiagnosticDataAccessReadOnly  1.0.0
com.apple.driver.AppleNANDConfigAccess  1.0.0
com.apple.driver.AppleDialogPMU 1.0.1
com.apple.driver.AppleHPM   3.4.4
com.apple.driver.AppleCSEmbeddedAudio   530.2
com.apple.driver.AppleEmbeddedAudio 530.2
com.apple.iokit.AppleARMIISAudio    100.1
com.apple.driver.DCPAVFamilyProxy   1
com.apple.driver.AppleSPMI  1.0.1
com.apple.iokit.IOMobileGraphicsFamily-DCP  343.0.0
com.apple.driver.AppleDCP   1
com.apple.driver.AppleFirmwareKit   1
com.apple.driver.ApplePassthroughPPM    3.0
com.apple.driver.AppleSART  1
com.apple.driver.AppleH13CameraInterface    4.87.0
com.apple.driver.AppleH10PearlCameraInterface   17.0.3
com.apple.driver.AppleH11ANEInterface   5.35.0
com.apple.iokit.IOGPUFamily 35.11
com.apple.driver.AppleUSBXDCIARM    1.0
com.apple.driver.AppleUSBXDCI   1.0
com.apple.iokit.IOUSBDeviceFamily   2.0.0
com.apple.driver.usb.AppleSynopsysUSBXHCI   1
com.apple.driver.usb.AppleUSBXHCI   1.2
com.apple.driver.AppleEmbeddedUSBHost   1
com.apple.driver.usb.AppleUSBHub    1.2
com.apple.driver.usb.AppleUSBHostCompositeDevice    1.2
com.apple.driver.AppleT8103TypeCPhy 1
com.apple.driver.ApplePMGR  1
com.apple.driver.AppleARMWatchdogTimer  1
com.apple.driver.usb.AppleUSBHostPacketFilter   1.0
com.apple.driver.AppleDisplayCrossbar   1.0.0
com.apple.iokit.IODisplayPortFamily 1.0.0
com.apple.driver.AppleTypeCPhy  1
com.apple.driver.AppleThunderboltNHI    7.2.8
com.apple.driver.AppleT8103PCIeC    1
com.apple.iokit.IOThunderboltFamily 9.3.3
com.apple.driver.ApplePIODMA    1
com.apple.driver.AppleT8103PCIe 1
com.apple.driver.AppleMultiFunctionManager  1
com.apple.driver.AppleBluetoothDebugService 1
com.apple.driver.AppleBCMWLANCore   1.0.0
com.apple.iokit.IO80211Family   1200.12.2b1
com.apple.driver.IOImageLoader  1.0.0
com.apple.driver.AppleOLYHAL    1
com.apple.driver.corecapture    1.0.4
com.apple.driver.AppleEmbeddedPCIE  1
com.apple.driver.AppleMobileDispH13G-DFR    140.0
com.apple.iokit.IOMobileGraphicsFamily  343.0.0
com.apple.driver.AppleMCA2-T8103    600.95
com.apple.driver.AppleEmbeddedAudioLibs 100.9.1
com.apple.driver.AppleFirmwareUpdateKext    1
com.apple.driver.AppleGPIOICController  1.0.2
com.apple.driver.AppleFireStormErrorHandler 1
com.apple.driver.AppleMobileApNonce 1
com.apple.iokit.IOTimeSyncFamily    1000.11
com.apple.driver.DiskImages 493.0.0
com.apple.iokit.IOGraphicsFamily    593
com.apple.iokit.IOBluetoothSerialManager    9.0.0
com.apple.iokit.IOBluetoothHostControllerUSBTransport   9.0.0
com.apple.iokit.IOBluetoothHostControllerUARTTransport  9.0.0
com.apple.iokit.IOBluetoothHostControllerTransport  9.0.0
com.apple.driver.IOBluetoothHostControllerPCIeTransport 9.0.0
com.apple.iokit.IOBluetoothFamily   9.0.0
com.apple.driver.FairPlayIOKit  68.13.1
com.apple.iokit.CSRBluetoothHostControllerUSBTransport  9.0.0
com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport 9.0.0
com.apple.driver.AppleSSE   1.0
com.apple.driver.AppleSEPKeyStore   2
com.apple.driver.AppleUSBTDM    532.40.7
com.apple.iokit.IOUSBMassStorageDriver  209.40.6
com.apple.iokit.IOPCIFamily 2.9
com.apple.iokit.IOSCSIBlockCommandsDevice   452.60.2
com.apple.iokit.IOSCSIArchitectureModelFamily   452.60.2
com.apple.driver.AppleIPAppender    1.0
com.apple.driver.AppleFDEKeyStore   28.30
com.apple.driver.AppleEffaceableStorage 1.0
com.apple.driver.AppleCredentialManager 1.0
com.apple.driver.KernelRelayHost    1
com.apple.iokit.IOUSBHostFamily 1.2
com.apple.driver.AppleUSBHostMergeProperties    1.2
com.apple.driver.usb.AppleUSBCommon 1.0
com.apple.driver.AppleSMC   3.1.9
com.apple.driver.RTBuddy    1.0.0
com.apple.driver.AppleEmbeddedTempSensor    1.0.0
com.apple.driver.AppleARMPMU    1.0
com.apple.iokit.IOAccessoryManager  1.0.0
com.apple.driver.AppleOnboardSerial 1.0
com.apple.iokit.IOSkywalkFamily 1.0
com.apple.driver.mDNSOffloadUserClient  1.0.1b8
com.apple.iokit.IONetworkingFamily  3.4
com.apple.iokit.IOSerialFamily  11
com.apple.driver.AppleSEPManager    1.0.1
com.apple.driver.AppleA7IOP 1.0.2
com.apple.driver.IOSlaveProcessor   1
com.apple.driver.AppleBiometricSensor   2
com.apple.iokit.IOHIDFamily 2.0.0
com.apple.iokit.CoreAnalyticsFamily 1
com.apple.AUC   1.0
com.apple.iokit.IOAVFamily  1.0.0
com.apple.iokit.IOHDCPFamily    1.0.0
com.apple.iokit.IOCECFamily 1
com.apple.iokit.IOAudio2Family  1.0
com.apple.driver.AppleIISController 100.1
com.apple.driver.AppleAudioClockLibs    100.9.1
com.apple.driver.AppleM2ScalerCSCDriver 265.0.0
com.apple.iokit.IOSurface   302.11.1
com.apple.driver.IODARTFamily   1
com.apple.security.quarantine   4
com.apple.security.sandbox  300.0
com.apple.kext.AppleMatch   1.0.0d1
com.apple.driver.AppleMobileFileIntegrity   1.0.5
com.apple.security.AppleImage4  4.2.0
com.apple.kext.CoreTrust    1
com.apple.iokit.IOCryptoAcceleratorFamily   1.0.1
com.apple.driver.AppleARMPlatform   1.0.2
com.apple.iokit.IOStorageFamily 2.1
com.apple.iokit.IOSlowAdaptiveClockingFamily    1.0.0
com.apple.iokit.IOReportFamily  47
com.apple.kec.pthread   1
com.apple.kec.Libm  1
com.apple.kec.corecrypto    12.0

** Stackshot Succeeded ** Bytes Traced 422998 (Uncompressed 1075440) **
ArmelChesnais commented 2 years ago

As a follow up, I've extended the display turning off to 3hr and disabled the mac going to sleep when display is off. I'm also keeping an eye to keeping the macbook process active during building/notarizing, and it seems to be helping with not crashing, though it's not 100%.

Of note, on my machine, interrupting the process from command line(ctrl-c) while notarize was awaiting completion would immediately and reliably cause the crash/restart. (the few times I tested it)

weiluenju commented 2 years ago

I have the same problem too.

Juned-H2 commented 2 years ago

I've been having this issue for months now too, it seems to work every now and then and sometimes just hang all the time. Also sometimes when it hangs, it causes a kernel panic and a purple screen restart.

Edit: I'm on a Mac Mini M1

bandrews commented 2 years ago

This is affecting me as well; same symptoms as the others. I’ve only ever successfully notarized once, on my first attempt - all subsequent attempts cause very, very bad things to happen to the machine. On one instance, I saw the Wi-Fi connection fail entirely. On another, the keyboard stopped responding in other apps…?

bandrews commented 2 years ago

I believe this issue is specific to the altool legacy notarization workflow. I was able to work around it and get notarization consistent by:

xcrun altool —list-providers -u “myapple@id.com” -p “appp-assw-ordh-ere”

Look for the WWDRTeamID.

This change needs to be made by 2023 by everyone anyway, and notarytool is faster, so there’s very little downside to this workaround.

Would still love to get to the bottom of why shelling out to altool has such dire consequences on the M1, but this at least gets things up and running again.

Juned-H2 commented 2 years ago

I believe this issue is specific to the altool legacy notarization workflow. I was able to work around it and get notarization consistent by:

  • getting my team ID by manually running altool

xcrun altool —list-providers -u “myapple@id.com” -p “appp-assw-ordh-ere”

Look for the WWDRTeamID.

  • edit your JS configuration for electron-notarize to add two new properties: { appBundleId: … … appleIDPassword: … teamId: “ID_FROM_PREVIOUS_STEP”, tool: “notarytool” }

This change needs to be made by 2023 by everyone anyway, and notarytool is faster, so there’s very little downside to this workaround.

Would still love to get to the bottom of why shelling out to altool has such dire consequences on the M1, but this at least gets things up and running again.

Thanks, I've tried this method only once and it worked first go, hopefully this fixes it. It's more like an upgrade than a workaround. I've done a bit of digging recently and found that it could be related to [different] methods used to upload to Apple's notarization servers. And your solution using notarytool to fix this makes me think that might have been the case.

Source: https://stackoverflow.com/a/55868047/16608863

MarshallOfSound commented 1 year ago

Fixed by using notarytool instead. Closing per #141