I am getting a crash report from my app in production. The stack trace doesn't include any of my code, rather points to code in RestKit itself where it is crashing. The crash itself is hard to reproduce on my side, and seems like some user in production is hitting an edge case. Below is the stack trace:
Thread : Crashed: NSManagedObjectContext 0x1743ecd00
0 libobjc.A.dylib 0x000000019361c0b4 objc_retain + 20
1 MyApp 0x00000001001e64c4 __78-[RKManagedObjectRequestOperation obtainPermanentObjectIDsForInsertedObjects:]_block_invoke (RKManagedObjectRequestOperation.m:873)
2 CoreData 0x0000000181b7d218 developerSubmittedBlockToNSManagedObjectContextPerform + 200
3 libdispatch.dylib 0x0000000193c55954 _dispatch_client_callout + 16
4 libdispatch.dylib 0x0000000193c5f1e4 _dispatch_barrier_sync_f_invoke + 76
5 CoreData 0x0000000181b7d0d8 -[NSManagedObjectContext performBlockAndWait:] + 244
6 MyApp 0x00000001001e62d8 -[RKManagedObjectRequestOperation obtainPermanentObjectIDsForInsertedObjects:] (RKManagedObjectRequestOperation.m:870)
7 MyApp 0x00000001001e34e4 __79-[RKManagedObjectRequestOperation performMappingOnResponseWithCompletionBlock:]_block_invoke345 (RKManagedObjectRequestOperation.m:643)
8 MyApp 0x000000010021c31c -[RKResponseMapperOperation willFinish] (RKResponseMapperOperation.m:317)
9 MyApp 0x000000010021c980 -[RKResponseMapperOperation main] (RKResponseMapperOperation.m:404)
10 Foundation 0x0000000182c601cc -[__NSOperationInternal _start:] + 636
11 Foundation 0x0000000182d21f28 __NSOQSchedule_f + 228
12 libdispatch.dylib 0x0000000193c55954 _dispatch_client_callout + 16
13 libdispatch.dylib 0x0000000193c600a4 _dispatch_queue_drain + 1448
14 libdispatch.dylib 0x0000000193c58a5c _dispatch_queue_invoke + 132
15 libdispatch.dylib 0x0000000193c62318 _dispatch_root_queue_drain + 720
16 libdispatch.dylib 0x0000000193c63c4c _dispatch_worker_thread3 + 108
17 libsystem_pthread.dylib 0x0000000193e3522c _pthread_wqthread + 816
18 libsystem_pthread.dylib 0x0000000193e34ef0 start_wqthread + 4
The crash message itself is:
Crashed: NSManagedObjectContext 0x17198900
EXC_BAD_ACCESS KERN_INVALID_ADDRESS at 0x915da43f
Any hints/directions as to how I can go about debugging this issue?
Thanks.
Ran into this, had setup the core data stack twice on accident, removing the second initialization fixed the issue.
Related
We have been facing a weird crash from core data from long time and haven't found anything what to do. Below is the crash stack to get more insight on it. It is a production issue and not replicate at our end.
Crashed: NSManagedObjectContext 0x2810fd450
0 CoreData 0x6f8d8 _PFObjectIDFastHash64 + 40
1 CoreFoundation 0xef54 __CFBasicHashRehash + 948
2 CoreFoundation 0xe76c CFBasicHashRemoveValue + 2412
3 CoreFoundation 0x45ce0 CFDictionaryRemoveValue + 336
4 CoreData 0x10781c -[NSManagedObjectContext(_NSInternalAdditions) _forgetObject:propagateToObjectStore:removeFromRegistry:] + 132
5 CoreData 0x29554 -[_PFManagedObjectReferenceQueue _processReferenceQueue:] + 916
6 CoreData 0xa284c __90-[NSManagedObjectContext(_NSInternalNotificationHandling) _registerAsyncReferenceCallback]_block_invoke + 80
7 CoreData 0x1f754 developerSubmittedBlockToNSManagedObjectContextPerform + 156
8 libdispatch.dylib 0x4660 _dispatch_client_callout + 20
9 libdispatch.dylib 0xbde4 _dispatch_lane_serial_drain + 672
10 libdispatch.dylib 0xc958 _dispatch_lane_invoke + 392
11 libdispatch.dylib 0x171a8 _dispatch_workloop_worker_thread + 656
12 libsystem_pthread.dylib 0x10f4 _pthread_wqthread + 288
13 libsystem_pthread.dylib 0xe94 start_wqthread + 8
Looks like the problem could be in NSManagedObjectContext performing some work. Maybe integrating some data-collection lib, as Crashlytics can help.
Regarding stack trace: could you please send the original error message (as shown on screenshot)?.
For now I can draw only bare suggestions that are not so relevant.
Some users are reporting crashes in my app when I checked it from crittercism. It is giving me below stack trace. I have update my core data with new model version( Using light weight migration). I am using Restkit and Magical Records in my app. I didn't get what is the problem ?
>>0 libobjc.A.dylib 0x353a16ba objc_retain + 8
! 1 Provider 0x00aeb701 __78-[RKManagedObjectRequestOperation obtainPermanentObjectIDsForInsertedObjects:]_block_invoke (RKManagedObjectRequestOperation.m:885)
2 CoreData 0x26c7496b developerSubmittedBlockToNSManagedObjectContextPerform + 180
3 libdispatch.dylib 0x35917c6f _dispatch_client_callout + 20
4 libdispatch.dylib 0x35921559 _dispatch_barrier_sync_f_invoke + 46
5 CoreData 0x26c74857 -[NSManagedObjectContext performBlockAndWait:] + 200
6 Provider 0x00aeb555 -[RKManagedObjectRequestOperation obtainPermanentObjectIDsForInsertedObjects:] (RKManagedObjectRequestOperation.m:882)
7 Provider 0x00ae8c67 __79-[RKManagedObjectRequestOperation performMappingOnResponseWithCompletionBlock:]_block_invoke348 (RKManagedObjectRequestOperation.m:645)
8 Provider 0x00b15961 -[RKResponseMapperOperation willFinish] (RKResponseMapperOperation.m:325)
9 Provider 0x00b1609d -[RKResponseMapperOperation main] (RKResponseMapperOperation.m:412)
10 Foundation 0x27b7cb0d -[__NSOperationInternal _start:] + 766
11 Foundation 0x27c21d93 __NSOQSchedule_f + 184
12 libdispatch.dylib 0x359224d3 _dispatch_queue_drain$VARIANT$mp + 1460
13 libdispatch.dylib 0x35921da1 _dispatch_queue_invoke$VARIANT$mp + 82
14 libdispatch.dylib 0x35924491 _dispatch_root_queue_drain + 386
15 libdispatch.dylib 0x359258a3 _dispatch_worker_thread3 + 104
16 libsystem_pthread.dylib 0x35a99d9d _pthread_wqthread + 666
17 libsystem_pthread.dylib 0x35a99af0 start_wqthread + 6
My iOS app uses AFNetworking (2.6.1), and my highest ranking crash is :
Crashed: com.apple.NSURLSession-work
EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0004000128ab38a0
This is how most stack traces look like in Crashlytics:
Thread : Crashed: com.apple.NSURLSession-work
0 libobjc.A.dylib 0x180e29bc8 objc_msgSend + 8
1 CFNetwork 0x181df6518 SessionConnectionLoadable::_loaderClientEvent_DidReceiveConnectionCacheKey(HTTPConnectionCacheKey*) + 56
2 CFNetwork 0x181e75178 ___ZN19URLConnectionLoader36protocolDidReceiveConnectionCacheKeyEP22HTTPConnectionCacheKey_block_invoke + 40
3 libdispatch.dylib 0x1811fd630 _dispatch_call_block_and_release + 24
4 libdispatch.dylib 0x1811fd5f0 _dispatch_client_callout + 16
5 libdispatch.dylib 0x181209634 _dispatch_queue_drain + 864
6 libdispatch.dylib 0x1812010f4 _dispatch_queue_invoke + 464
7 libdispatch.dylib 0x18120b504 _dispatch_root_queue_drain + 728
8 libdispatch.dylib 0x18120b224 _dispatch_worker_thread3 + 112
9 libsystem_pthread.dylib 0x181411470 _pthread_wqthread + 1092
10 libsystem_pthread.dylib 0x181411020 start_wqthread + 4
I don't use kvo, and my app uses location and stays in the background at all times.
Any ideas on how to debug / recreate (I can't manage to recreate the issue in a simulator or on a device) ?
Even catching the exception, without knowing where it is or how to handle it correctly would suffice in this case...
I can see from the Crashlytics that some of my app users are getting the following crashes. I have never seen these myself and don't know how to reproduce them as they don't have my code in the stack trace. I have read about OpenGL that some crashes are possible when trying to update the surface while the app is in the background. Not sure if that is the case here because the crashes didn't occur before iOS 9.
I have several annotations on the map, custom MKAnnotationView derived views, some custom overlays and a MKTileOverlay derived tile source. The map handling code and overlays are Objective-C, but my app has also some Swift code.
Does anybody have any ideas what could be the reason for the crashes?
1)
Thread : Crashed: com.apple.maps.geogl.renderQueue
0 VectorKit 0x18c82a894 ___ZN3ggl10GLRenderer5frameEPNS_12RenderTargetEPNS_11RenderQueueE_block_invoke_2 + 876
1 VectorKit 0x18c82a47c ___ZN3ggl10GLRenderer5frameEPNS_12RenderTargetEPNS_11RenderQueueE_block_invoke + 212
2 libdispatch.dylib 0x182625630 _dispatch_call_block_and_release + 24
3 libdispatch.dylib 0x1826255f0 _dispatch_client_callout + 16
4 libdispatch.dylib 0x182631634 _dispatch_queue_drain + 864
2)
Thread : Crashed: com.apple.mapdisplay.stylesheetLoadQueue
0 libdispatch.dylib 0x183ec2a90 dispatch_async + 76
1 libdispatch.dylib 0x183ec2a88 dispatch_async + 68
2 VectorKit 0x18df501c4 std::__1::__function::__func<-[VKTileSetBackedTileSource setStyleManager:]::$_0, std::__1::allocator<-[VKTileSetBackedTileSource setStyleManager:]::$_0>, void (std::__1::shared_ptr<gss::StyleManager>, bool)>::operator()(std::__1::shared_ptr<gss::StyleManager>&&, bool&&) + 176
3 VectorKit 0x18e11533c std::__1::__function::__func<gss::StyleManager::addFinishedDecodingGlobalPropertiesCallback(std::__1::function<void (std::__1::shared_ptr<gss::StyleManager>, bool)>)::$_0, std::__1::allocator<gss::StyleManager::addFinishedDecodingGlobalPropertiesCallback(std::__1::function<void (std::__1::shared_ptr<gss::StyleManager>, bool)>)::$_0>, void (bool)>::operator()(bool&&) + 88
4 VectorKit 0x18e10c248 ___ZN3gss10StyleSheet43addFinishedDecodingGlobalPropertiesCallbackENSt3__18functionIFvbEEE_block_invoke + 56
5 libdispatch.dylib 0x183ec1630 _dispatch_call_block_and_release + 24
6 libdispatch.dylib 0x183ec15f0 _dispatch_client_callout + 16
7 libdispatch.dylib 0x183ecd634 _dispatch_queue_drain + 864
8 libdispatch.dylib 0x183ec50f4 _dispatch_queue_invoke + 464
9 libdispatch.dylib 0x183ecf504 _dispatch_root_queue_drain + 728
10 libdispatch.dylib 0x183ecf224 _dispatch_worker_thread3 + 112
11 libsystem_pthread.dylib 0x1840d5470 _pthread_wqthread + 1092
12 libsystem_pthread.dylib 0x1840d5020 start_wqthread + 4
3)
Thread : Fatal Exception: NSGenericException
0 CoreFoundation 0x23f6a2eb __exceptionPreprocess
1 libobjc.A.dylib 0x23736dff objc_exception_throw
2 CoreFoundation 0x23f69d6d -[NSException name]
3 VectorKit 0x2c923af9 -[VKRasterOverlayTileSource _queueDraw:]
4 VectorKit 0x2c5e74ad -[VKTileSource fetchTileForKey:]
5 VectorKit 0x2c7c512d -[VKTileProvider dirtyTilesFromTileSource:]
6 libdispatch.dylib 0x23b07dd7 _dispatch_call_block_and_release
7 libdispatch.dylib 0x23b07dc3 _dispatch_client_callout
8 libdispatch.dylib 0x23b0c671 _dispatch_main_queue_callback_4CF
9 CoreFoundation 0x23f2cfc5 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__
10 CoreFoundation 0x23f2b4bf __CFRunLoopRun
11 CoreFoundation 0x23e7dbb9 CFRunLoopRunSpecific
12 CoreFoundation 0x23e7d9ad CFRunLoopRunInMode
13 GraphicsServices 0x250f7af9 GSEventRunModal
14 UIKit 0x28169fb5 UIApplicationMain
15 MyApp 0x252d44 main (main.swift:12)
16 libdispatch.dylib 0x23b30873 (Missing)
A similar crashlog from my app as the following. From the thread name "com.apple.maps.geogl.renderQueue", I guess that is related with usage of the MapKit framework.
I found the "gpus_ReturnNotPermittedKillClient" in the Technical QA:
"How to fix OpenGL ES application crashes when moving to the background"
https://developer.apple.com/library/archive/qa/qa1766/_index.html
Crashed: com.apple.maps.geogl.renderQueue
EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000001
0 libGPUSupportMercury.dylib 0x190a45f08 gpus_ReturnNotPermittedKillClient
1 libGPUSupportMercury.dylib 0x190a46ec4 gpusSubmitDataBuffers
2 VectorKit 0x18c7d1a0c ___ZN3ggl10GLRenderer5frameEPNS_12RenderTargetEPNS_11RenderQueueE_block_invoke + 212
3 libdispatch.dylib 0x181ec94bc _dispatch_call_block_and_release + 24
4 libdispatch.dylib 0x181ec947c _dispatch_client_callout + 16
5 libdispatch.dylib 0x181ed54c0 _dispatch_queue_drain + 864
6 libdispatch.dylib 0x181eccf80 _dispatch_queue_invoke + 464
7 libdispatch.dylib 0x181ed7390 _dispatch_root_queue_drain + 728
8 libdispatch.dylib 0x181ed9934 _dispatch_worker_thread + 124
9 libsystem_pthread.dylib 0x1820e3b28 _pthread_body + 156
10 libsystem_pthread.dylib 0x1820e3a8c _pthread_body + 154
11 libsystem_pthread.dylib 0x1820e1028 thread_start + 4
I have been stuck with this crash for few days and seem to be going nowhere.
Crashed: NSManagedObjectContext 0x14f016920
EXC_BAD_ACCESS KERN_INVALID_ADDRESS at 0x0000000000000010
Thread : Crashed: NSManagedObjectContext 0x14f016920
0 libobjc.A.dylib 0x000000019953dbd0 objc_msgSend + 16
1 CoreFoundation 0x0000000184969c84 __CFBasicHashDrain + 276
2 CoreFoundation 0x0000000184814da4 CFRelease + 256
3 CoreData 0x0000000184632cf0 -[_NSFaultingMutableSet dealloc] + 68
4 CoreData 0x00000001845f8d3c -[_CDSnapshot dealloc] + 84
5 CoreData 0x00000001846068e0 -[NSManagedObject(_NSInternalMethods) _clearRawPropertiesWithHint:] + 388
6 CoreData 0x00000001846066bc -[NSFaultHandler turnObject:intoFaultWithContext:] + 448
7 CoreData 0x0000000184603e10 -[NSManagedObject dealloc] + 104
8 CoreData 0x0000000184603428 -[_PFManagedObjectReferenceQueue _processReferenceQueue:] + 1076
9 CoreData 0x0000000184681678 __89-[NSManagedObjectContext(_NSInternalNotificationHandling) _registerAyncReferenceCallback]_block_invoke + 104
10 CoreData 0x000000018467bc20 developerSubmittedBlockToNSManagedObjectContextPerform + 196
11 libdispatch.dylib 0x0000000199d25770 _dispatch_client_callout + 16
12 libdispatch.dylib 0x0000000199d3175c _dispatch_queue_drain + 864
13 libdispatch.dylib 0x0000000199d29274 _dispatch_queue_invoke + 464
14 libdispatch.dylib 0x0000000199d25770 _dispatch_client_callout + 16
15 libdispatch.dylib 0x0000000199d33bb0 _dispatch_root_queue_drain + 2140
16 libdispatch.dylib 0x0000000199d3334c _dispatch_worker_thread3 + 112
17 libsystem_pthread.dylib 0x0000000199f39478 _pthread_wqthread + 1092
Any pointers on how I can debug this crash? The same didn't crash in iOS 8. Could it be a iOS 9 crash and hopefully it will be fixed in the subsequent iOS versions?
Any help would be much appreciated.