New watchdog 0x8badf00d scene update watch-dog crashing iPads on iOS 11.2+

I have just started getting reports from the field this week of our iPad kiosk app crashing randomly while in the idle screen. I managed to get a symbolicated crash log which indicates the no so funny "ate bad food" watchdog timeout error.


This is the same source code / version that has been in the App Store since December with no issues. This is a kiosk app that is used daily by hundreds of users.


I suspect the newer iPads that are on iOS 11.2 or 11.3 are part of the problem. This week we had 3 new iPads go out and they are all having this random crash issue.


I have attached a crash log report here: https://pastebin.com/5YkUMMJK


Please help me understand what is causing this, I'm desperate here!


The app is in an idle screen where it makes a web API call every 30 minutes to update some products and pricing info. This is all done from a background thread using a SimpleTimer.


Please note this is a Xamarin iOS app so if you want to see any of the code it will be in C#.NET.


I've read all the documentation I can find on interpreting crash logs and it has led nowhere. The stack trace for the Thread 0 (Dispatch thread) means nothing to me. It just looks like the UI is drawing a table?


I have setup API monitoring tools to watch our web APIs response time (in case it really is hanging up the UI and taking > 10 seconds). I have found no issues there so far, the average response time is around 200ms. Even so, these requests are being made in the background and continue every half hour for the life of the app.


I managed to FINALLY get my dev iPad to crash today in the office after having the app running for about 3 hours. This iPad is running iOS 11.2.6


Thread 0 name: tid_303 Dispatch queue: com.apple.main-thread

Thread 0 Crashed:

0 ??? 000000000000000000 0 + 0

1 Foundation 0x0000000185d4bb18 -[NSConcreteMapTable dealloc] + 108

2 UIKit 0x000000018f410abc -[UIGestureGraphNode .cxx_destruct] + 36

3 libobjc.A.dylib 0x000000018467aef4 object_cxxDestructFromClass+ 28404 (objc_object*, objc_class*) + 148

4 libobjc.A.dylib 0x0000000184688638 objc_destructInstance + 88

5 libobjc.A.dylib 0x0000000184688690 object_dispose + 16

6 UIKit 0x000000018f07741c -[UIGestureEnvironment removeGestureRecognizer:] + 464

7 UIKit 0x000000018e9ec580 -[UIView+ 58752 (UIViewGestures) removeAllGestureRecognizers] + 252

8 UIKit 0x000000018e9eb654 -[UIView dealloc] + 636

9 UIKit 0x000000018eab7ca0 -[UIScrollView dealloc] + 760

10 UIKit 0x000000018eb64ec4 -[UITableView dealloc] + 500

11 UIKit 0x000000018eb5946c -[UIViewController dealloc] + 700

12 UIKit 0x000000018ebbde3c -[UITableViewController dealloc] + 228

13 CDAYourStoreAppiPadKiosk 0x0000000101de4588 xamarin_invoke_objc_method_implementation + 19826056 (trampolines.m:373)

14 CDAYourStoreAppiPadKiosk 0x0000000100b05a50 -[Xamarin_Forms_Platform_iOS_FormsUITableViewController release] + 39504 (registrar.m:7576)

15 CoreFoundation 0x00000001852fcfb4 -[__NSArrayI dealloc] + 64

16 UIKit 0x000000018ec5bbec _runAfterCACommitDeferredBlocks + 616

17 UIKit 0x000000018ec4ee5c _cleanUpAfterCAFlushAndRunDeferredBlocks + 288

18 UIKit 0x000000018e9e0464 _afterCACommitHandler + 132

19 CoreFoundation 0x00000001853dacdc __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 32

20 CoreFoundation 0x00000001853d8694 __CFRunLoopDoObservers + 412

21 CoreFoundation 0x00000001853d8c50 __CFRunLoopRun + 1292

22 CoreFoundation 0x00000001852f8c58 CFRunLoopRunSpecific + 436

23 GraphicsServices 0x00000001871a4f84 GSEventRunModal + 100

24 UIKit 0x000000018ea515c4 UIApplicationMain + 236

25 CDAYourStoreAppiPadKiosk 0x000000010159ac20 wrapper_managed_to_native_UIKit_UIApplication_UIApplicationMain_int_string___intptr_intptr + 11136032 (/<unknown>:1)

26 CDAYourStoreAppiPadKiosk 0x000000010152fc3c UIKit_UIApplication_Main_string___intptr_intptr + 10697788 (UIApplication.cs:79)

27 CDAYourStoreAppiPadKiosk 0x000000010152fbfc UIKit_UIApplication_Main_string___string_string + 10697724 (UIApplication.cs:63)

28 CDAYourStoreAppiPadKiosk 0x0000000100b252b4 CDA_YourStoreApp_iPadKiosk_Application_Main_string__ + 168628 (/<unknown>:1)

29 CDAYourStoreAppiPadKiosk 0x0000000100dbbfc4 wrapper_runtime_invoke_object_runtime_invoke_dynamic_intptr_intptr_intptr_intptr + 244

30 CDAYourStoreAppiPadKiosk 0x0000000101cf0558 mono_jit_runtime_invoke + 18826584 (mini-runtime.c:2526)

31 CDAYourStoreAppiPadKiosk 0x0000000101d5589c do_runtime_invoke + 19241116 (object.c:2829)

32 CDAYourStoreAppiPadKiosk 0x0000000101d582a0 do_exec_main_checked + 19251872 (object.c:4623)

33 CDAYourStoreAppiPadKiosk 0x0000000101cda06c mono_jit_exec + 18735212 (driver.g.c:1040)

34 CDAYourStoreAppiPadKiosk 0x0000000101de67dc xamarin_main + 19834844 (monotouch-main.m:0)

35 CDAYourStoreAppiPadKiosk 0x0000000100b20f20 main + 151328 (main.m:105)

36 libdyld.dylib 0x0000000184e1856c start + 4

Replies

I just found out that crash log isn't symbolicated, so here it is fully symbolicated. Hopefully helps some more although I still can't get anything from it.


https://pastebin.com/gNyjg3j3

For those reading along at home, I’m not going to respond here because one of my colleagues is helping cold_data via another channel.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"