I'm collecting and uploading MetricKit crash diagnostic reports from my app in the field, and the huge majority of the reports I get back have exception type EXC_CRASH, signal SIGKILL with no terminationReason. The report lists thread 0 as attributed, but it doesn't have any of my code active. Here's an example symbolicated trace of thread 0:
mach_msg2_trap (in libsystem_kernel.dylib) + 8
mach_msg2_internal (in libsystem_kernel.dylib) + 76
mach_msg_overwrite (in libsystem_kernel.dylib) + 424
mach_msg (in libsystem_kernel.dylib) + 24
__CFRunLoopServiceMachPort (in CoreFoundation) + 160
__CFRunLoopRun (in CoreFoundation) + 1188
_CFRunLoopRunSpecificWithOptions (in CoreFoundation) + 532
GSEventRunModal (in GraphicsServices) + 120
-[UIApplication _run] (in UIKitCore) + 796
UIApplicationMain (in UIKitCore) + 332
main (in BRFree) (main.m:0)
start (in dyld) + 6928
There is code from my app in other threads, but they're all waiting on NSConditions and not doing anything.
I thought they might be 0xdead10cc crashes, but there are other reports that have "terminationReason": "Namespace RUNNINGBOARD, Code 0xdead10cc".
Can anyone help me narrow down what could be causing these crashes?
I would file a DTS support ticket, but it won't let me without either a request from someone at Apple or a focused test project. If an engineer sees this thread and gives me a green light for a code-level support request, I can provide a sampling of the MetricKit reports.
I’m still researching options and I’ll reply here when I know more.
So it’s hard to say how I came to this conclusion, but I suspect that the majority of your crashes will have a backtrace that leads into SQLite:
0 libsqlite3.dylib … wherePathSolver + 952
1 libsqlite3.dylib … sqlite3WhereBegin + 2988
2 libsqlite3.dylib … sqlite3Select + 16536
3 libsqlite3.dylib … yy_reduce + 5136
4 libsqlite3.dylib … sqlite3Parser + 36
5 libsqlite3.dylib … sqlite3RunParser + 796
6 libsqlite3.dylib … sqlite3Prepare + 548
7 libsqlite3.dylib … sqlite3LockAndPrepare + 224
8 BRFree …
…
29 BRFree …
30 libswift_Concurrency.dylib … completeTaskWithClosure(swift::AsyncContext*, swift::SwiftError*) + 1
This is from thread 11 of your first crash report, btw.
This suggests you’re hitting the 0xdead10cc termination, as explained in EXC_CRASH (SIGKILL).
It would be nice if MetricKit included that code in its MXCrashDiagnostic, and I encourage you to file an enhancement request requesting just that (if you do file this ER, please post your bug number, just for the record).
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"