Crash when set CAMetalLayer.presentsWithTransaction=true in background thread - ios

When set metalLayer.presentsWithTransaction = true, and when I call nextDrawable.present() in bg thread (our rendering thread is not main thread), the app sometimes will crash with:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Modifications to the layout engine must not be performed from a background thread after it has been accessed from the main thread.'
Expected: App will not crash....The rendering should be ok.
Stack trace:
Fatal Exception: NSInternalInconsistencyException
Modifications to the layout engine must not be performed from a background thread after it has been accessed from the main thread.
Fatal Exception: NSInternalInconsistencyException
0 CoreFoundation 0x1aa30a5ac __exceptionPreprocess
1 libobjc.A.dylib 0x1be38442c objc_exception_throw
2 CoreAutoLayout 0x1be60ad4c -[NSISEngine tryToOptimizeReturningMutuallyExclusiveConstraints]
3 CoreAutoLayout 0x1be60aa20 -[NSISEngine _optimizeWithoutRebuilding]
4 CoreAutoLayout 0x1be60a4f8 -[NSISEngine optimize]
5 CoreAutoLayout 0x1be605b34 -[NSISEngine performPendingChangeNotifications]
6 UIKitCore 0x1ad13eef4 -[UIView(Hierarchy) layoutSubviews]
7 UIKitCore 0x1ad151dd4 -[UIView(CALayerDelegate) layoutSublayersOfLayer:]
8 QuartzCore 0x1ad65b280 -[CALayer layoutSublayers]
9 QuartzCore 0x1ad65b73c CA::Layer::layout_if_needed(CA::Transaction*)
10 QuartzCore 0x1ad66fb64 CA::Layer::layout_and_display_if_needed(CA::Transaction*)
11 QuartzCore 0x1ad5b7114 CA::Context::commit_transaction(CA::Transaction*, double, double*)
12 QuartzCore 0x1ad5e2418 CA::Transaction::commit()
13 Flutter 0x1032e4778 (Missing)
14 Flutter 0x1035b85ec (Missing)
15 Flutter 0x1035b9094 (Missing)
16 Flutter 0x1035b88b0 (Missing)
17 Flutter 0x1035bedb0 (Missing)
18 Flutter 0x1032ef46c (Missing)
19 Flutter 0x1032f13e0 (Missing)
20 CoreFoundation 0x1aa288050 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__
21 CoreFoundation 0x1aa287c50 __CFRunLoopDoTimer
22 CoreFoundation 0x1aa2870c4 __CFRunLoopDoTimers
23 CoreFoundation 0x1aa281178 __CFRunLoopRun
24 CoreFoundation 0x1aa2804bc CFRunLoopRunSpecific
25 Flutter 0x1032f12bc (Missing)
26 Flutter 0x1032f0c44 (Missing)
27 libsystem_pthread.dylib 0x1f185aca8 _pthread_start
28 libsystem_pthread.dylib 0x1f1863788 thread_start
Any solution for this?

Related

Flutter IOS Firebase Crashlytics Fatal Exception: NSInternalInconsistencyException

I am not sure what causes this error? I've been trying to work it out for days. Any suggestions?
Fatal Exception: NSInternalInconsistencyException
0 CoreFoundation 0x186a7186c __exceptionPreprocess
1 libobjc.A.dylib 0x19ba8dc50 objc_exception_throw
2 CoreFoundation 0x186977000 -[CFPrefsSearchListSource addManagedSourceForIdentifier:user:]
3 Foundation 0x187d0b91c -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:]
4 Flutter 0x1051f8868 (Missing)
5 Flutter 0x1051f560c (Missing)
6 Flutter 0x104ef2028 (Missing)
7 Flutter 0x10520e540 (Missing)
8 Flutter 0x1051aa7a8 (Missing)
9 Flutter 0x1051ac608 (Missing)
10 CoreFoundation 0x1869edfa0 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__
11 CoreFoundation 0x1869edba0 __CFRunLoopDoTimer
12 CoreFoundation 0x1869ecffc __CFRunLoopDoTimers
13 CoreFoundation 0x1869e6ee4 __CFRunLoopRun
14 CoreFoundation 0x1869e621c CFRunLoopRunSpecific
15 GraphicsServices 0x19e5b3784 GSEventRunModal
16 UIKitCore 0x189426ee8 -[UIApplication _run]
17 UIKitCore 0x18942c75c UIApplicationMain
18 MYAPP 0x1005b1b0c main + 7 (AppDelegate.swift:7)
19 libdyld.dylib 0x1866a66b0 start

Flutter Application crashes on ios when changing tab of DefaultTabBarController

MY application consist of both bottom and upper tabs, I am calling a network request on each tab but sometimes it crash application on iOS and don't know the reason for this.
Below are logs i got on crashlytics.
Fatal Exception: NSInternalInconsistencyException
0 CoreFoundation 0x199a9b180 __exceptionPreprocess
1 libobjc.A.dylib 0x198c739f8 objc_exception_throw
2 CoreFoundation 0x1999b488c +[_CFXNotificationTokenRegistration keyCallbacks]
3 Foundation 0x19a478b38 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:]
4 Flutter 0x1014953ec (Missing)
5 Runner 0x101062c30 +[GeneratedPluginRegistrant registerWithRegistry:] + 88 (GeneratedPluginRegistrant.m:88)
6 flutter_downloader 0x101f77404 (Missing)
7 flutter_downloader 0x101f7a850 (Missing)
8 flutter_downloader 0x101f7d218 (Missing)
9 Flutter 0x101517768 (Missing)
10 Flutter 0x1014b2240 (Missing)
11 Flutter 0x101508398 (Missing)
12 Flutter 0x1014c1fd0 (Missing)
13 Flutter 0x1014c3c48 (Missing)
14 CoreFoundation 0x199a2d554 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__
15 CoreFoundation 0x199a2d284 __CFRunLoopDoTimer
16 CoreFoundation 0x199a2cab8 __CFRunLoopDoTimers
17 CoreFoundation 0x199a27a08 __CFRunLoopRun
18 CoreFoundation 0x199a26fb4 CFRunLoopRunSpecific
19 GraphicsServices 0x19bc2879c GSEventRunModal
20 UIKitCore 0x1c6288c38 UIApplicationMain
21 Runner 0x1010633bc main + 8 (AppDelegate.swift:8)
22 libdyld.dylib 0x1994ea8e0 start
Crashed: com.twitter.crashlytics.ios.exception
0 Runner 0x10107cc20 CLSProcessRecordAllThreads + 4308732960
1 Runner 0x10107d008 CLSProcessRecordAllThreads + 4308733960
2 Runner 0x10106c874 CLSHandler + 4308666484
3 Runner 0x10107b218 __CLSExceptionRecord_block_invoke + 4308726296
4 libdispatch.dylib 0x1994d97d4 _dispatch_client_callout + 16
5 libdispatch.dylib 0x199487c1c _dispatch_lane_barrier_sync_invoke_and_complete + 56
6 Runner 0x10107ac84 CLSExceptionRecord + 4308724868
7 Runner 0x10107aab0 CLSExceptionRecordNSException + 4308724400
8 Runner 0x10107a6a4 CLSTerminateHandler() + 4308723364
9 libc++abi.dylib 0x198c68838 std::__terminate(void (*)()) + 16
10 libc++abi.dylib 0x198c68434 __cxa_rethrow + 144
11 libobjc.A.dylib 0x198c73bc8 objc_exception_rethrow + 44
12 CoreFoundation 0x199a27020 CFRunLoopRunSpecific + 544
13 GraphicsServices 0x19bc2879c GSEventRunModal + 104
14 UIKitCore 0x1c6288c38 UIApplicationMain + 212
15 Runner 0x1010633bc main + 8 (AppDelegate.swift:8)
16 libdyld.dylib 0x1994ea8e0 start + 4
I am stuck at this and couldn't find any reason or solution.
Thanks in advance
What version of crashlytics are you running? If you are running iOS 13 you should upgrade to 3.14.0. as it will give you better detailed information about the crash.

OpenGL rendering crash during Flutter app startup on IOS

I have an app developed in Flutter, I track its crashes by Firebase Crashlytics.
According to it in 99% of the time it is crash free, but during 1% of the sessions on IOS I have a strange crash at startup of the app.
OpenGL rendering while app in background state
keyboard_arrow_up
Crashed: io.flutter.1.gpu
0 libGPUSupportMercury.dylib 0x2374b2fe4 gpus_ReturnNotPermittedKillClient + 12
1 AGXGLDriver 0x23b9fcec8 gldUpdateDispatch + 7184
2 libGPUSupportMercury.dylib 0x2374b3fac gpusSubmitDataBuffers + 176
3 AGXGLDriver 0x23b9fe3f4 gldUpdateDispatch + 12604
4 GLEngine 0x23cb95234 gliPresentViewES_Exec + 184
5 OpenGLES 0x21e8ddaa4 -[EAGLContext presentRenderbuffer:] + 80
6 Flutter 0x100a54e84 (Missing)
7 Flutter 0x100da8e18 (Missing)
8 Flutter 0x100aad2d8 (Missing)
9 Flutter 0x100a9dcf0 (Missing)
10 Flutter 0x100a9e15c (Missing)
11 Flutter 0x100a9e868 (Missing)
12 Flutter 0x100a9dfe4 (Missing)
13 Flutter 0x100aa2d94 (Missing)
14 Flutter 0x100a63098 (Missing)
15 Flutter 0x100a6448c (Missing)
16 CoreFoundation 0x21b66a8f4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 28
17 CoreFoundation 0x21b66a624 __CFRunLoopDoTimer + 864
18 CoreFoundation 0x21b669e58 __CFRunLoopDoTimers + 248
19 CoreFoundation 0x21b664da8 __CFRunLoopRun + 1844
20 CoreFoundation 0x21b664354 CFRunLoopRunSpecific + 436
21 Flutter 0x100a64318 (Missing)
22 Flutter 0x100a63be8 (Missing)
23 libsystem_pthread.dylib 0x21b2f82c0 _pthread_body + 128
24 libsystem_pthread.dylib 0x21b2f8220 _pthread_start + 44
25 libsystem_pthread.dylib 0x21b2fbcdc thread_start + 4
Do you have similar experiences? Is there any way to fix it?
Thanks a lot!

Stacktrace is no longer symbolicated

I do my own error handling by catching any exceptions and logging them manually. I use NSSetUncaughtExceptionHandler(&myExceptionHandler); and log the stack trace using [NSException callStackSymbols]. Up until recently my logs contained the symbolicated stack trace. Now they don't and there weren't any code changes related to the logging. This is occurring on all devices and versions of iOS. I am able to manually symbolicate my logs but it is quite cumbersome. Any insight would be greatly appreciated.
Previously my logs looked like:
0 libobjc.A.dylib 0x352925b0 objc_msgSend + 16
1 MYAPP 0x0006573a -[MyViewController(Images) didReceiveImage:context:etag:expires:] + 42
2 MYAPP 0x0004fb26 -[MyImageTask didReceiveImage:] + 98
3 Foundation 0x361ac8e8 __NSThreadPerformPerform
4 CoreFoundation 0x3b37d680 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
5 CoreFoundation 0x3b37cee4 __CFRunLoopDoSources0
6 CoreFoundation 0x3b37bcb2 __CFRunLoopRun
7 CoreFoundation 0x3b2eeeb8 CFRunLoopRunSpecific
8 CoreFoundation 0x3b2eed44 CFRunLoopRunInMode
9 GraphicsServices 0x396bc2e6 GSEventRunModal
10 UIKit 0x3452e2f4 UIApplicationMain
11 MYAPP 0x0004934a main + 70
12 MYAPP 0x000492fc start + 36
After my last release they look like:
0 libobjc.A.dylib 0x352925b0 objc_msgSend + 16
1 MYAPP 0x0006573a - MYAPP + 42
2 MYAPP 0x0004fb26 - MYAPP + 98
3 Foundation 0x361ac8e8 __NSThreadPerformPerform
4 CoreFoundation 0x3b37d680 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
5 CoreFoundation 0x3b37cee4 __CFRunLoopDoSources0
6 CoreFoundation 0x3b37bcb2 __CFRunLoopRun
7 CoreFoundation 0x3b2eeeb8 CFRunLoopRunSpecific
8 CoreFoundation 0x3b2eed44 CFRunLoopRunInMode
9 GraphicsServices 0x396bc2e6 GSEventRunModal
10 UIKit 0x3452e2f4 UIApplicationMain
11 MYAPP 0x0004934a main + 70
12 MYAPP 0x000492fc start + 36
Looks like Apple now performs a kind of repackaging and eventually stripping debug info.

Firebase Analytics is not available

I did a manually install of the Firebase SDK to my iOS project. Following the instruction from README.md
I included all the files from the Analytics folder:
FirebaseAnalytics.framework
FirebaseInstanceID.framework
GoogleInterchangeUtilities.framework
GoogleSymbolUtilities.framework
GoogleUtilities.framework
And I included "import FirebaseAnalytics" to my AppDelegate. and then I called:
FIRApp.configure()
But Xcode is still telling me this:
*** Terminating app due to uncaught exception 'com.firebase.core', reason: '[FIRApp configure] Firebase Analytics is not available.'
*** First throw call stack:
(
0 CoreFoundation 0x0000000104178d85 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x0000000106761deb objc_exception_throw + 48
2 CoreFoundation 0x0000000104178cbd +[NSException raise:format:] + 205
3 helloworld 0x0000000103f17190 -[FIRApp configureCore] + 325
4 helloworld 0x0000000103f16bb1 +[FIRApp addAppToAppDictionary:] + 100
5 helloworld 0x0000000103f162e2 +[FIRApp configureDefaultAppWithOptions:sendingNotifications:] + 268
6 helloworld 0x0000000103f16027 +[FIRApp configure] + 302
7 helloworld 0x0000000103ee9d81 _TFC6mognet11AppDelegate11applicationfTCSo13UIApplication29didFinishLaunchingWithOptionsGSqGVs10DictionaryCSo8NSObjectPs9AnyObject____Sb + 97
8 helloworld 0x0000000103ee9ea4 _TToFC6mognet11AppDelegate11applicationfTCSo13UIApplication29didFinishLaunchingWithOptionsGSqGVs10DictionaryCSo8NSObjectPs9AnyObject____Sb + 180
9 UIKit 0x00000001051a49ac -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 272
10 UIKit 0x00000001051a5c0d -[UIApplication _callInitializationDelegatesForMainScene:transitionContext:] + 3415
11 UIKit 0x00000001051ac568 -[UIApplication _runWithMainScene:transitionContext:completion:] + 1769
12 UIKit 0x00000001051a9714 -[UIApplication workspaceDidEndTransaction:] + 188
13 FrontBoardServices 0x00000001091bd8c8 __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 24
14 FrontBoardServices 0x00000001091bd741 -[FBSSerialQueue _performNext] + 178
15 FrontBoardServices 0x00000001091bdaca -[FBSSerialQueue _performNextFromRunLoopSource] + 45
16 CoreFoundation 0x000000010409e301 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
17 CoreFoundation 0x000000010409422c __CFRunLoopDoSources0 + 556
18 CoreFoundation 0x00000001040936e3 __CFRunLoopRun + 867
19 CoreFoundation 0x00000001040930f8 CFRunLoopRunSpecific + 488
20 UIKit 0x00000001051a8f21 -[UIApplication _run] + 402
21 UIKit 0x00000001051adf09 UIApplicationMain + 171
22 helloworld 0x0000000103eea832 main + 114
23 libdyld.dylib 0x000000010722592d start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
What am I doing wrong here? FYI. I am running Xcode Version 7.3.1 and I have the latest SDK.
Did you add the -ObjC flag in "Other Linking Flags" setting? When I did this in my Objective-C project, the app stopped crashing when trying to load Firebase. I also included all the Firebase files, used the Firebase.h header and [FIRApp configure] to call Firebase.
I am running Xcode 8.

Resources