New crash under iOS 15.4 on thread create

I'm starting to get a lot of reports of random crashes on iOS 15.4. Taking a look at the logs it seems to be primarily around native thread creation and joins.

I have been unable to reproduce the issue myself. Wondering if anyone has seen this or if there is anything they can glean from this crash log:

Thanks in advance.

Hardware Model:      iPhone9,3
Process:             egginc [7122]
Path:                /private/var/containers/Bundle/Application/2471E88B-C3CD-45D4-98E0-99D8C4B5A202/egginc.app/egginc
Identifier:          com.auxbrain.egginc
Version:             1.22.6 (1.22.6.0)
AppStoreTools:       13E112
AppVariant:          1:iPhone9,3:15
Code Type:           ARM-64 (Native)
Role:                Foreground
Parent Process:      launchd [1]
Coalition:           com.auxbrain.egginc [1087]

Date/Time:           2022-03-22 23:27:31.3687 -0400
Launch Time:         2022-03-22 23:26:16.6376 -0400
OS Version:          iPhone OS 15.4 (19E241)
Release Type:        User
Baseband Version:    6.02.02
Report Version:      104

Exception Type:  EXC_CRASH (SIGKILL)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note:  EXC_CORPSE_NOTIFY
Termination Reason: FRONTBOARD 2343432205 
<RBSTerminateContext| domain:10 code:0x8BADF00D explanation:[application<com.auxbrain.egginc>:7122] failed to terminate gracefully after 5.0s
ProcessVisibility: Unknown
ProcessState: Running
WatchdogEvent: process-exit
WatchdogVisibility: Background
WatchdogCPUStatistics: (
"Elapsed total CPU time (seconds): 4.250 (user 4.250, system 0.000), 38% CPU",
"Elapsed application CPU time (seconds): 0.064, 1% CPU"
) reportType:CrashLog maxTerminationResistance:Interactive>

Triggered by Thread:  0


Thread 0 name:
Thread 0 Crashed:
0   libsystem_pthread.dylib       	0x00000001dc2ec64c _pthread_create + 944 (pthread.c:1440)
1   libsystem_pthread.dylib       	0x00000001dc2ec638 _pthread_create + 924 (inline_internal.h:128)
2   egginc                        	0x0000000104ec3048 std::__1::__libcpp_thread_create(_opaque_pthread_t**, void* (*)(void*), void*) + 24 (__threading_support:421)
3   egginc                        	0x0000000104ec3048 std::__1::thread::thread<std::__1::packaged_task<int ()>, void>(std::__1::packaged_task<int ()>&&) + 348 (thread:314)
4   egginc                        	0x0000000104ebeb20 std::__1::thread::thread<std::__1::packaged_task<int ()>, void>(std::__1::packaged_task<int ()>&&) + 8 (thread:306)
5   egginc                        	0x0000000104ebeb20 BatchedMesh::kickoffUpdates(GLState&) + 40 (batchedmesh.cpp:969)
6   egginc                        	0x00000001047978ec ShadowedMesh::getVaos(GLState&) + 92 (shadowedmesh.cpp:501)
7   egginc                        	0x0000000104ed3ba4 SVRenderNode::drawPreShadowVolume(GLState&) const + 176 (svrendernode.cpp:25)
8   egginc                        	0x00000001049b0f50 RenderList::draw(GLState&) const + 4948 (renderlist.cpp:238)
9   egginc                        	0x00000001047898ec GameControllerBase::render(GLState&, float, unsigned int, unsigned int, unsigned int) const + 620 (gamecontrollerbase.cpp:332)
10  egginc                        	0x000000010478150c -[ZHViewController glkView:drawInRect:] + 360 (ZHViewController.mm:414)
11  GLKit                         	0x00000001c0791cc0 -[GLKView _display:] + 208 (GLKView.m:590)
12  egginc                        	0x0000000104781b74 -[ZHViewController drawView:] + 828 (ZHViewController.mm:530)
13  QuartzCore                    	0x0000000184c5c620 CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) + 760 (CADisplay.mm:4175)
14  QuartzCore                    	0x0000000184c631d4 display_timer_callback(__CFMachPort*, void*, long, void*) + 368 (CADisplayTimer.cpp:219)
15  CoreFoundation                	0x00000001811674dc __CFMachPortPerform + 172 (CFMachPort.c:549)
16  CoreFoundation                	0x00000001811a7714 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 56 (CFRunLoop.c:1996)
17  CoreFoundation                	0x00000001811aad10 __CFRunLoopDoSource1 + 596 (CFRunLoop.c:2136)
18  CoreFoundation                	0x0000000181167f40 __CFRunLoopRun + 2392 (CFRunLoop.c:3172)
19  CoreFoundation                	0x000000018117ac30 CFRunLoopRunSpecific + 572 (CFRunLoop.c:3268)
20  GraphicsServices              	0x00000001a1b95988 GSEventRunModal + 160 (GSEvent.c:2200)
21  UIKitCore                     	0x0000000183975c50 -[UIApplication _run] + 1080 (UIApplication.m:3511)
22  UIKitCore                     	0x000000018370f3d0 UIApplicationMain + 336 (UIApplication.m:5064)
23  egginc                        	0x000000010477f1f8 main + 60 (main.m:16)
24  dyld                          	0x00000001066043d0 start + 444 (dyldMain.cpp:879)

Thread 1 name:
Thread 1:
0   libsystem_kernel.dylib        	0x00000001bb938aac mach_msg_trap + 8
1   libsystem_kernel.dylib        	0x00000001bb93907c mach_msg + 72 (mach_msg.c:119)
2   CoreFoundation                	0x0000000181163768 __CFRunLoopServiceMachPort + 368 (CFRunLoop.c:2646)
3   CoreFoundation                	0x0000000181167a70 __CFRunLoopRun + 1160 (CFRunLoop.c:3000)
4   CoreFoundation                	0x000000018117ac30 CFRunLoopRunSpecific + 572 (CFRunLoop.c:3268)
5   Foundation                    	0x0000000182883eac -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 232 (NSRunLoop.m:373)
6   Foundation                    	0x00000001828c2e90 -[NSRunLoop(NSRunLoop) runUntilDate:] + 88 (NSRunLoop.m:420)
7   UIKitCore                     	0x00000001838f50a0 -[UIEventFetcher threadMain] + 512 (UIEventFetcher.m:1167)
8   Foundation                    	0x00000001828d0d2c __NSThread__start__ + 792 (NSThread.m:972)
9   libsystem_pthread.dylib       	0x00000001dc2e9348 _pthread_start + 116 (pthread.c:891)
10  libsystem_pthread.dylib       	0x00000001dc2e7948 thread_start + 8
[Full Crash Log](https://developer.apple.com/forums/content/attachment/5f6d5df2-9162-4edf-be6f-1ef36bcbf394)


I've been investigating this for a while now, and I believe it has stopped happening, but I do not know why.

Things that are different in the code

I switched from using a std::packaged_task to simply using a std::functionMy packaged_task actually spawned more worker threads - (that is what appears to be the trigger for the above crash log) - it now does not maybe at the cost of some performance... maybe

Normally I'd just say I'm bad at multithreaded programming and give up, but the fact that it is ONLY happening on iOS 15.4 makes me wonder if there was some sort of threading policy change.

Update #2: Not it hasn't stopped happening :\

Yeah. Not fixed for me. iPhone 7 with 15.4 randomly crashes. Also kills phone with cellular error message

I updated my phone last night and it keeps crashing every 5 minutes. Storage is ok, close all apps even turned off background refresh apps for all apps. Soft reset, etc. Still not working and cannot get any job done bc it froze for 1 minute and then crashes and restarts the phone.

New crash under iOS 15.4 on thread create
 
 
Q