M1 Macbook Air crash on running 4 simple C process in parallel

I have started reading Operating Systems: Three Easy Pieces, when I ran the example 2.1 on my MacBook Air M1 with 4 instances in parallel it spawned 4 unique processes but then my laptop crashed after 2-3 seconds. Please find the steps to replicate below:

simple-example.c

#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
#include <assert.h>
#include "common.h"
int
main(int argc, char *argv[]){
if (argc != 2) {
fprintf(stderr, "usage: cpu <string>\n"); exit(1);
    }
    char *str = argv[1]; 
    while (1) {
Spin(1);
        printf("%s\n", str);
    }
return 0; }

[common.h][1]


#ifndef __common_h__
#define __common_h__

#include <sys/time.h>
#include <sys/stat.h>
#include <assert.h>

double GetTime() {
    struct timeval t;
    int rc = gettimeofday(&t, NULL);
    assert(rc == 0);
    return (double) t.tv_sec + (double) t.tv_usec/1e6;
}

void Spin(int howlong) {
    double t = GetTime();
    while ((GetTime() - t) < (double) howlong)
    ; // do nothing in loop
}

#endif // __common_h__

The program above as explained by the book:

Figure 2.1 depicts our first program. It doesn’t do much. In fact, all it does is call Spin(), a function that repeatedly checks the time and returns once it has run for a second. Then, it prints out the string that the user passed in on the command line, and repeats, forever.

I have copied common.h from the linked github file

Compile:

~ gcc -v
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 12.0.5 (clang-1205.0.22.11)
Target: arm64-apple-darwin20.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
gcc -o cpu simple-example.c -Wall

running a single instance of the process with a string works fine:

./cpu "A"

running multiple instances crashes the laptop:

./cpu A & ; ./cpu B & ; ./cpu C & ; ./cpu D &

This spawns 4 processes and starts printing the strings A C B D in random order but then a purple light flashed and the laptop died.

Laptop Specification:

OS: Big Sur
Version: 11.5.2
Chip: M1
Memory: 8GB

Crash Report:

panic(cpu 0 caller 0xfffffe002fb3f460): "Spinlock timeout after 12584284 ticks, 0xfffffe0033898588 = fffffe1667d2dfe1"
Debugger message: panic
Memory ID: 0xff
OS release type: User
OS version: 20G95
Kernel version: Darwin Kernel Version 20.6.0: Wed Jun 23 00:26:27 PDT 2021; root:xnu-7195.141.2~5/RELEASE_ARM64_T8101
Fileset Kernelcache UUID: 15F4DFDFA9E0154FED96EA8997E65429
Kernel UUID: AC4A14A7-8A8E-3AE6-85A6-55E6B2502BF9
iBoot version: iBoot-6723.140.2
secure boot?: YES
Paniclog version: 13
KernelCache slide: 0x0000000027ec4000
KernelCache base:  0xfffffe002eec8000
Kernel slide:      0x0000000028a0c000
Kernel text base:  0xfffffe002fa10000
Kernel text exec base:  0xfffffe002fadc000
mach_absolute_time: 0xac2324506
Epoch Time:        sec       usec
  Boot    : 0x613ff694 0x00019680
  Sleep   : 0x00000000 0x00000000
  Wake    : 0x00000000 0x00000000
  Calendar: 0x613ffe14 0x00092243

CORE 0 recently retired instr at 0xfffffe002fc4d6a4
CORE 1 recently retired instr at 0xfffffe002fc4ed6c
CORE 2 recently retired instr at 0xfffffe002fc4ed6c
CORE 3 recently retired instr at 0xfffffe002fc4ed6c
CORE 4 recently retired instr at 0xfffffe002fc4ed70
CORE 5 recently retired instr at 0xfffffe002fc4ed70
CORE 6 recently retired instr at 0xfffffe002fc4ed70
CORE 7 recently retired instr at 0xfffffe002fc4ed70
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 is the one that panicked. Check the full backtrace for details.
CORE 1: PC=0xfffffe002faecc28, LR=0xfffffe002faecc28, FP=0x0000000000000000
CORE 2: PC=0xfffffe002fb251f0, LR=0xfffffe002fb251f0, FP=0xfffffe3f58b4bd50
CORE 3: PC=0xfffffe002faecc28, LR=0xfffffe002faecc28, FP=0x0000000000000000
CORE 4: PC=0xfffffe002fb25200, LR=0xfffffe003004f268, FP=0xfffffe30987c3db0
CORE 5: PC=0xfffffe002fb25200, LR=0xfffffe003004f268, FP=0xfffffe309b17bdb0
CORE 6: PC=0xfffffe002fb25200, LR=0xfffffe003004f268, FP=0xfffffe3f5966bdb0
CORE 7: PC=0xfffffe002fb25200, LR=0xfffffe003004f268, FP=0xfffffe309af7bdb0
Panicked task 0xfffffe167984a1f8: 100 pages, 4 threads: pid 778: redis-server
Panicked thread: 0xfffffe16797df300, backtrace: 0xfffffe3f5958b6d0, tid: 6902
          lr: 0xfffffe002fb2ab68  fp: 0xfffffe3f5958b740
          lr: 0xfffffe002fb2a94c  fp: 0xfffffe3f5958b7b0
          lr: 0xfffffe002fc541c8  fp: 0xfffffe3f5958b7d0
          lr: 0xfffffe002fc45674  fp: 0xfffffe3f5958b880
          lr: 0xfffffe002fae37e8  fp: 0xfffffe3f5958b890
          lr: 0xfffffe002fb2a5dc  fp: 0xfffffe3f5958bc20
          lr: 0xfffffe002fb2a5dc  fp: 0xfffffe3f5958bc90
          lr: 0xfffffe00302dce80  fp: 0xfffffe3f5958bcb0
          lr: 0xfffffe002fb3f460  fp: 0xfffffe3f5958bce0
          lr: 0xfffffe002fb3f2cc  fp: 0xfffffe3f5958bd00
          lr: 0xfffffe002fb25174  fp: 0xfffffe3f5958bd50
          lr: 0xfffffe003004f268  fp: 0xfffffe3f5958bdb0
          lr: 0xfffffe00301320e8  fp: 0xfffffe3f5958be40
          lr: 0xfffffe002fc45350  fp: 0xfffffe3f5958bef0
          lr: 0xfffffe002fae37e8  fp: 0xfffffe3f5958bf00

last started kext at 697335366: com.apple.filesystems.autofs    3.0 (addr 0xfffffe002f988000, size 16384)
loaded kexts:
com.apple.filesystems.autofs    3.0
com.apple.fileutil  20.036.15
com.apple.driver.AppleTopCaseHIDEventDriver 4050.1
com.apple.iokit.IOBluetoothSerialManager    8.0.5d7
com.apple.driver.AppleBiometricServices 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  1677.141.1
com.apple.driver.BCMWLANFirmware4378.Hashstore  1
com.apple.driver.SEPHibernation 1
com.apple.driver.CoreKDL    1
com.apple.driver.AppleUSBDeviceNCM  5.0.0
com.apple.driver.AppleThunderboltIP 4.0.3
com.apple.driver.AppleSmartBatteryManager   161.0.0
com.apple.driver.AppleALSColorSensor    1.0.0d1
com.apple.driver.AppleAOPVoiceTrigger   11.5
com.apple.driver.AppleFileSystemDriver  3.0.1
com.apple.nke.l2tp  1.9
com.apple.filesystems.tmpfs 1
com.apple.driver.ApplePMP   1
com.apple.driver.ApplePMPFirmware   1
com.apple.driver.AppleSmartIO2  1
com.apple.IOTextEncryptionFamily    1.0.0
com.apple.filesystems.hfs.kext  556.100.11
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.AppleEmbeddedSimpleSPINORFlasher  1
com.apple.driver.AppleDPDisplayTCON 1
com.apple.driver.AppleCS42L83Audio  442.26
com.apple.driver.AppleTAS5770LAmp   442.26
com.apple.driver.AppleSPMIPMU   1.0.1
com.apple.driver.AppleT8020SOCTuner 1
com.apple.driver.AppleT8103CLPCv3   1
com.apple.AGXG13G   173.28.7
com.apple.driver.AppleAVD   385
com.apple.driver.AppleAVE2  401.73.4
com.apple.driver.AppleJPEGDriver    4.6.0
com.apple.driver.AppleMobileDispH13G-DCP    140.0
com.apple.driver.usb.AppleUSBHostT8103  1
com.apple.driver.AudioDMAController-T8103   1.60.5
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.AppleS5L8960XWatchDogTimer 1
com.apple.driver.AppleInterruptController   1.0.0d1
com.apple.driver.AppleT8020DART 1
com.apple.driver.AppleBluetoothModule   1
com.apple.driver.AppleSamsungSerial 1.0.0d1
com.apple.driver.AppleBCMWLANBusInterfacePCIe   1
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   1
com.apple.AppleSystemPolicy 2.0.0
com.apple.nke.applicationfirewall   311
com.apple.kec.InvalidateHmac    1
com.apple.kext.triggers 1.0
com.apple.driver.AppleActuatorDriver    4440.3
com.apple.driver.AppleHIDKeyboard   224
com.apple.driver.AppleMultitouchDriver  4440.3
com.apple.driver.AppleHSBluetoothDriver 4050.1
com.apple.driver.IOBluetoothHIDDriver   8.0.5d7
com.apple.iokit.IOAVBFamily 940.4
com.apple.plugin.IOgPTPPlugin   985.2
com.apple.iokit.IOEthernetAVBController 1.1.0
com.apple.driver.AppleMesaSEPDriver 100.99
com.apple.iokit.IOBiometricFamily   1
com.apple.driver.DiskImages.KernelBacked    493.0.0
com.apple.driver.AppleXsanScheme    3
com.apple.driver.AppleSEPHDCPManager    1.0.1
com.apple.driver.AppleTrustedAccessory  1
com.apple.iokit.AppleSEPGenericTransfer 1
com.apple.driver.IOBluetoothHostControllerPCIeTransport 8.0.5d7
com.apple.iokit.IOBluetoothHostControllerTransport  8.0.5d7
com.apple.driver.AppleConvergedIPCOLYBTControl  1
com.apple.driver.AppleConvergedPCI  1
com.apple.driver.AppleBluetoothDebug    1
com.apple.driver.AppleBTM   1.0.1
com.apple.driver.usb.networking 5.0.0
com.apple.driver.AppleThunderboltDPInAdapter    8.1.4
com.apple.driver.AppleThunderboltDPAdapterFamily    8.1.4
com.apple.driver.AppleThunderboltUSBDownAdapter 1.0.4
com.apple.driver.AppleThunderboltPCIDownAdapter 4.1.1
com.apple.driver.AppleAOPAudio  16.2
com.apple.driver.AppleHIDTransportSPI   4400.35
com.apple.driver.AppleHIDTransport  4400.35
com.apple.driver.AppleInputDeviceSupport    4400.35
com.apple.nke.ppp   1.9
com.apple.driver.AppleSPU   1
com.apple.driver.AppleDCPDPTXProxy  1.0.0
com.apple.driver.DCPDPFamilyProxy   1
com.apple.AGXFirmwareKextG13GRTBuddy    173.28.7
com.apple.AGXFirmwareKextRTBuddy64  173.28.7
com.apple.driver.AppleBSDKextStarter    3
com.apple.filesystems.hfs.encodings.kext    1
com.apple.iokit.IONVMeFamily    2.1.0
com.apple.driver.AppleDiagnosticDataAccessReadOnly  1.0.0
com.apple.driver.AppleNANDConfigAccess  1.0.0
com.apple.driver.AppleHPM   3.4.4
com.apple.driver.AppleStockholmControl  1.0.0
com.apple.driver.AppleCSEmbeddedAudio   442.26
com.apple.driver.AppleEmbeddedAudio 442.26
com.apple.iokit.AppleARMIISAudio    80.34.1
com.apple.driver.AppleDialogPMU 1.0.1
com.apple.driver.ApplePassthroughPPM    3.0
com.apple.iokit.IOGPUFamily 21.11
com.apple.driver.AppleH11ANEInterface   4.75.0
com.apple.driver.AppleH13CameraInterface    3.58.0
com.apple.driver.AppleH10PearlCameraInterface   16.15.1
com.apple.driver.DCPAVFamilyProxy   1
com.apple.iokit.IOMobileGraphicsFamily-DCP  343.0.0
com.apple.driver.AppleDCP   1
com.apple.driver.AppleFirmwareKit   1
com.apple.iokit.IOMobileGraphicsFamily  343.0.0
com.apple.driver.AppleSPMI  1.0.1
com.apple.driver.AppleUSBXDCIARM    1.0
com.apple.driver.AppleUSBXDCI   1.0
com.apple.iokit.IOUSBDeviceFamily   2.0.0
com.apple.driver.usb.AppleUSBXHCIARM    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.AppleSART  1
com.apple.driver.ApplePMGR  1
com.apple.driver.watchdog   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.2
com.apple.driver.ApplePIODMA    1
com.apple.driver.AppleT8103PCIe 1
com.apple.driver.AppleMultiFunctionManager  1
com.apple.driver.AppleEmbeddedPCIE  1
com.apple.driver.AppleBluetoothDebugService 1
com.apple.driver.AppleBCMWLANCore   1.0.0
com.apple.iokit.IO80211FamilyV2 1200.12.2b1
com.apple.driver.IOImageLoader  1.0.0
com.apple.driver.corecapture    1.0.4
com.apple.driver.AppleMCA2-T8103    540.10
com.apple.driver.AppleGPIOICController  1.0.2
com.apple.driver.AppleFireStormErrorHandler 1
com.apple.driver.AppleMobileApNonce 1
com.apple.iokit.IOTimeSyncFamily    985.2
com.apple.driver.DiskImages 493.0.0
com.apple.iokit.IOGraphicsFamily    585.1
com.apple.iokit.IOBluetoothFamily   8.0.5d7
com.apple.iokit.IOBluetoothPacketLogger 8.0.5d7
com.apple.driver.FairPlayIOKit  68.7.1
com.apple.iokit.CoreAnalyticsFamily 1
com.apple.driver.AppleSSE   1.0
com.apple.driver.AppleSEPKeyStore   2
com.apple.driver.AppleUSBTDM    511.141.1
com.apple.iokit.IOUSBMassStorageDriver  184.140.2
com.apple.iokit.IOPCIFamily 2.9
com.apple.iokit.IOSCSIBlockCommandsDevice   436.140.1
com.apple.iokit.IOSCSIArchitectureModelFamily   436.140.1
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
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.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.AppleEmbeddedAudioLibs 1.17
com.apple.driver.AppleFirmwareUpdateKext    1
com.apple.driver.AppleM2ScalerCSCDriver 265.0.0
com.apple.iokit.IOSurface   290.8.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.kext.CoreTrust    1
com.apple.security.AppleImage4  3.0.0
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.corecrypto    11.1
com.apple.kec.Libm  1



** Stackshot Succeeded ** Bytes Traced 364005 (Uncompressed 950640) **

This is happened both the times I run the code, Geekbench 5 is running fine result

Is this some problem with code or M1 SOC issue?

How do I explain this to apple to get a replacement? I bought this laptop on August 4th without apple care

Update: @DarkDust suggested killing redis and trying, still crashing.


Solution 1:

I just tried on an M1 Mini, it already crashes with three processes, without printing any letter at all.

./cpu A & ./cpu B & ./cpu C &

Best to report it to Apple then.