Hi,
we're seeing crashes in production for our app that's built using Xcode 14.3.
As far as I can tell, this is related to structured concurrency and only users on iOS 15.0, 15.1 & 15.1.1 are affected.
We had to revert back to using Xcode 14.2. There's also a post about this on swift.org forums (Structured concurrency bug in Xcode 14.3).
We can't reproduce this on the simulator.
Looks like there are several different types of crashes:
BUG IN LIBDISPATCH: Lingering DISPATCH_WLH_ANON
Crashed: com.apple.root.user-initiated-qos.cooperative
0 libdispatch.dylib 0x15d38 _dispatch_root_queue_drain + 244
1 libdispatch.dylib 0x165f8 _dispatch_worker_thread2 + 164
2 libsystem_pthread.dylib 0x10b8 _pthread_wqthread + 228
3 libsystem_pthread.dylib 0xe94 start_wqthread + 8
BUG IN CLIENT OF LIBDISPATCH: Voucher corruption
Crashed: com.apple.root.user-initiated-qos.cooperative
0 libdispatch.dylib 0x3d924 _voucher_xref_dispose.cold.2 + 28
1 libdispatch.dylib 0x2a774 _voucher_xref_dispose + 268
2 libdispatch.dylib 0x6ed8 _dispatch_set_priority_and_voucher_slow + 272
3 libdispatch.dylib 0x16638 _dispatch_worker_thread2 + 228
4 libsystem_pthread.dylib 0x10b8 _pthread_wqthread + 228
5 libsystem_pthread.dylib 0xe94 start_wqthread + 8
API MISUSE: Voucher over-release
Crashed: com.apple.root.user-initiated-qos.cooperative
0 libdispatch.dylib 0x6f38 _dispatch_set_priority_and_voucher_slow + 368
1 libdispatch.dylib 0x16638 _dispatch_worker_thread2 + 228
2 libsystem_pthread.dylib 0x10b8 _pthread_wqthread + 228
3 libsystem_pthread.dylib 0xe94 start_wqthread + 8
BUG IN LIBDISPATCH: Lingering DISPATCH_WLH_ANON
Crashed: com.apple.root.user-initiated-qos.cooperative
0 libdispatch.dylib 0x16ed0 _dispatch_kevent_worker_thread + 2196
1 libsystem_pthread.dylib 0x112c _pthread_wqthread + 344
2 libsystem_pthread.dylib 0xe94 start_wqthread + 8
Crashed: com.apple.root.user-initiated-qos.cooperative
0 libdispatch.dylib 0x2a6d4 _voucher_xref_dispose + 108
1 libdispatch.dylib 0x6ed8 _dispatch_set_priority_and_voucher_slow + 272
2 libdispatch.dylib 0x16638 _dispatch_worker_thread2 + 228
3 libsystem_pthread.dylib 0x10b8 _pthread_wqthread + 228
4 libsystem_pthread.dylib 0xe94 start_wqthread + 8
Obviously reverting to Xcode 14.2 is a short term solution, and bumping the minimum target to iOS 15.2 is out of the question for now, since we still support iOS 14.
Hopefully, Apple fixes this soon. Not sure if there's anything we can do until then.
Seems like this is fixed in Xcode 14.3.1
https://developer.apple.com/documentation/xcode-release-notes/xcode-14_3_1-release-notes