Strange 0x8BADF00D crash in dyld4::Loader

Hello!

My app has been experiencing some strange crashes in the last few months. The crash log shows it as a Watchdog timeout error of 0x8BADF00D. I knew about this error code before, especially since here is the documentation about addressing-watchdog-terminations. But actually, the call stack shows that the crash appears in dydl and it seems that my app code has not been executed yet.

Does anyone know the cause of this problem please? I have observed this crash on iOS 15.6, 15.5, 15.4, and earlier versions.

Incident Identifier: 82D9B8D8-88B3-4016-9CB5-5AE280006628
Hardware Model:      iPhone10,6
Process:             *** [297]
Path:                /private/var/containers/Bundle/Application/FDF7C78A-E217-482E-A20C-D602C117EB68/***.app/***
Identifier:          com.***.***
Version:             3.1 (7774)
AppStoreTools:       13C90b
AppVariant:          1:iPhone10,6:15
Code Type:           ARM-64 (Native)
Role:                unknown
Parent Process:      launchd [1]
Coalition:          com.***.*** [466]

Date/Time:           2022-03-18 07:20:38.2452 +0200
Launch Time:         2022-03-18 07:19:37.6871 +0200
OS Version:          iPhone OS 15.4 (19E241)
Release Type:        User
Baseband Version:    5.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:process-launch watchdog transgression: application<com.***.***>:297 exhausted real (wall clock) time allowance of 60.00 seconds
ProcessVisibility: Background
ProcessState: Running
WatchdogEvent: process-launch
WatchdogVisibility: Background
WatchdogCPUStatistics: (
"Elapsed total CPU time (seconds): 283.260 (user 283.260, system 0.000), 78% CPU",
"Elapsed application CPU time (seconds): 0.021, 0% CPU"
) reportType:CrashLog maxTerminationResistance:Interactive>

Triggered by Thread:  0


Thread 0 Crashed:
0   dyld                          	0x0000000104f82b60 ___ZNK5dyld46Loader13resolveSymbolER11DiagnosticsRNS_12RuntimeStateEiPKcbbU13block_pointerFvjjRKNS0_14ResolvedSymbolEEb_block_invoke.94 + 428 (Loader.cpp:1539)
1   dyld                          	0x0000000104f71308 dyld4::Loader::resolveSymbol(Diagnostics&, dyld4::RuntimeState&, int, char const*, bool, bool, void (unsigned int, unsigned int, dyld4::Loader::ResolvedSymbol const&) block_pointer, bool) const + 348 (Loader.cpp:1504)
2   dyld                          	0x0000000104f84cd8 ___ZNK5dyld416JustInTimeLoader17forEachBindTargetER11DiagnosticsRNS_12RuntimeStateEU13block_pointerFvjjRKNS_6Loader14ResolvedSymbolEEbU13block_pointerFvS8_RbESD__block_invoke.46 + 124 (JustInTimeLoader.cpp:621)
3   dyld                          	0x0000000104f9a9d4 ___ZNK5dyld313MachOAnalyzer25forEachBindTarget_OpcodesER11DiagnosticsbU13block_pointerFvRKNS0_14BindTargetInfoERbES8__block_invoke.408 + 64 (MachOAnalyzer.cpp:5782)
4   dyld                          	0x0000000104f9a794 dyld3::MachOAnalyzer::forEachBind_OpcodesWeak(Diagnostics&, dyld3::MachOLoaded::LinkEditInfo const&, dyld3::MachOFile::SegmentInfo const*, void (char const*, dyld3::MachOLoaded::LinkEditInfo const&... + 728 (MachOAnalyzer.cpp:6161)
5   dyld                          	0x0000000104f99b60 dyld3::MachOAnalyzer::forEachBindUnified_Opcodes(Diagnostics&, bool, void (unsigned long long, dyld3::MachOAnalyzer::BindTargetInfo const&, bool&) block_pointer, void (unsigned long long, dyld3::Ma... + 632 (MachOAnalyzer.cpp:5763)
6   dyld                          	0x0000000104f9975c dyld3::MachOAnalyzer::forEachBindTarget_Opcodes(Diagnostics&, bool, void (dyld3::MachOAnalyzer::BindTargetInfo const&, bool&) block_pointer, void (dyld3::MachOAnalyzer::BindTargetInfo const&, bool&... + 148 (MachOAnalyzer.cpp:5773)
7   dyld                          	0x0000000104f84304 dyld4::JustInTimeLoader::forEachBindTarget(Diagnostics&, dyld4::RuntimeState&, void (unsigned int, unsigned int, dyld4::Loader::ResolvedSymbol const&) block_pointer, bool, void (dyld4::Loader::Reso... + 176 (JustInTimeLoader.cpp:608)
8   dyld                          	0x0000000104f732d4 dyld4::JustInTimeLoader::applyFixups(Diagnostics&, dyld4::RuntimeState&, dyld4::DyldCacheDataConstLazyScopedWriter&, bool) const + 388 (JustInTimeLoader.cpp:412)
9   dyld                          	0x0000000104f79758 dyld4::prepare(dyld4::APIs&, dyld3::MachOAnalyzer const*) + 1592 (dyldMain.cpp:573)
10  dyld                          	0x0000000104f783b0 start + 412 (dyldMain.cpp:864)


Thread 0 crashed with ARM Thread State (64-bit):
    x0: 0x00000001c076a000   x1: 0x00000000000002f1   x2: 0x000000016b4aa198   x3: 0x000000016b4aa190
    x4: 0x0000000000000001   x5: 0x000000016b4ac638   x6: 0x0000000000000000   x7: 0x000000016b4ad160
    x8: 0x0000000180000000   x9: 0x000000034076a000  x10: 0x0000000000000000  x11: 0x0000000000000001
   x12: 0x0000000104bf278b  x13: 0x0000000000000000  x14: 0x00000001ffd94d24  x15: 0x0000000000000001
   x16: 0x0000000104fa5070  x17: 0x0000000000000a06  x18: 0x0000000000000000  x19: 0x000000016b4ac6c8
   x20: 0x0000000104c50dc0  x21: 0x0000000000000001  x22: 0x000000020b59cad8  x23: 0x000000016b4ac630
   x24: 0x000000016b4aa1b0  x25: 0x0000000000000002  x26: 0x0000000000000247  x27: 0x0000000104c55a90
   x28: 0x0000000000000770   fp: 0x000000016b4ac6b0   lr: 0x0000000104f82b60
    sp: 0x000000016b4aa1b0   pc: 0x0000000104f82b60 cpsr: 0x20000000
   esr: 0x92000007 (Data Abort) byte read Translation fault


Binary Images:
0x104f60000 - 0x104fb3fff dyld arm64  <5c4972a8ef8132dca84842cc7f7874cf> /usr/lib/dyld

EOF

Something very wonky is happening here. Note this:

time allowance of 60.00 seconds

indicating that your app was killed by the watchdog after 60 seconds, and this:

"Elapsed total CPU time (seconds): 283.260 (user 283.260, system 0.000), 78% CPU",

showing that the CPU was super busy during those 60 seconds (you get 4.7 times more CPU seconds than wall clock seconds due to the multiple cores), and this:

"Elapsed application CPU time (seconds): 0.021, 0% CPU"

showing that your app was using almost none of that time. In short, something is burning the CPU so hard that your app made almost no progress during launch. I don’t think that this has anything to do with you. Furthermore, I doubt you’ll be able to make progress on this from just a crash report; you need a sysdiagnose log to see what’s happening with other processes on the device.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Strange 0x8BADF00D crash in dyld4::Loader
 
 
Q