QuartzCore UI thread error causes crash

836
2
10-18-2021 01:00 PM
JeremyBridges
Occasional Contributor

We are seeing this error in telemetry, saying that our Xamarin.Forms app is crashing out with this error. We can provide detailed logs if needed. Just an FYI.

mono_handle_exception_internal
mini-exceptions.c, line 2782
SIGTRAP: Objective-C exception thrown. Name: NSInternalInconsistencyException Reason: Modifications to the layout engine must not be performed from a background thread after it has been accessed from the main thread. Native stack trace: 0 CoreFoundation 0x0000000186171270 37A3D601-9398-3DC2-9D00-1B162726A4C9 + 1159792 1 libobjc.A.dylib 0x0000000199f06480 objc_exception_throw + 56 2 CoreAutoLayout 0x000000019a166c5c 63C693CC-EC6A-344E-B11B-69018739F5EA + 60508 3 CoreAutoLayout 0x000000019a166934 63C693CC-EC6A-344E-B11B-69018739F5EA + 59700 4 CoreAutoLayout 0x000000019a166494 63C693CC-EC6A-344E-B11B-69018739F5EA + 58516 5 CoreAutoLayout 0x000000019a162188 63C693CC-EC6A-344E-B11B-69018739F5EA + 41352 6 UIKitCore 0x0000000188f15ca8 E136F680-E4B6-3BCE-8132-4A39EC1ED9FA + 16972968 7 QuartzCore 0x000000018938b424 60620AA2-2467-32A9-9DE9-EEF77E05D3CC + 1434660 8 QuartzCore 0x0000000189391bac 60620AA2-2467-32A9-9DE9-EEF77E05D3CC + 1461164 9 QuartzCore 0x000000018939d16c 60620AA2-2467-32A9-9DE9-EEF77E05D3CC + 1507692 10 QuartzCore 0x00000001892e5578 60620AA2-2467-32A9-9DE9-EEF77E05D3CC + 755064 11 QuartzCore 0x00000001893102c8 60620AA2-2467-32A9-9DE9-EEF77E05D3CC + 930504 12 QuartzCore 0x0000000189310aac 60620AA2-2467-32A9-9DE9-EEF77E05D3CC + 932524 13 libsystem_pthread.dylib 0x00000001cdae0108 D9C0947A-F081-33AB-B885-C0CECC183129 + 57608 14 libsystem_pthread.dylib 0x00000001cdadbcd0 D9C0947A-F081-33AB-B885-C0CECC183129 + 40144 15 libsystem_pthread.dylib 0x00000001cdad3898 pthread_exit + 60 16 SE.Geospatial.Mobile.Viewer.iOS 0x000000010a387858 _ZN7plcrash2MS5async24dwarf_cfa_state_iteratorIyxE4nextEPjPNS1_28plcrash_dwarf_cfa_reg_rule_tEPy + 91771832 17 SE.Geospatial.Mobile.Viewer.iOS 0x000000010a31e080 _ZN7plcrash2MS5async24dwarf_cfa_state_iteratorIyxE4nextEPjPNS1_28plcrash_dwarf_cfa_reg_rule_tEPy + 91339744 18 libsystem_pthread.dylib 0x00000001cdadbc74 _pthread_start + 288 19 libsystem_pthread.dylib 0x00000001cdae0878 thread_start + 8

0 Kudos
2 Replies
dotMorten_esri
Esri Notable Contributor

No idea what "QuartzCore" is but I'm assuming it is one of your assemblies? I don't see anything in that call stack that is pointing to the Runtime SDK. My guess is you have some code somewhere that tries to interact with the UI, without first switching to the UI Thread.

0 Kudos
JeremyBridges
Occasional Contributor

Sorry for the late reply. I guess I thought it was as "Quartz" was the original codename of the 100.x series of the Runtime. Looking around, this looks to be iOS API's. Example:

https://www.fortinet.com/blog/threat-research/detailed-analysis-of-macos-ios-vulnerability-cve-2019-...

We'll take that into account when triaging these in the future. Thanks for the confirmation, Morten!

0 Kudos