AFNetworking and NSBlockOperation crash - iphone

Running an iPhone app using the latest version of AFNetworking, the most popular crash according to Crashlytics is involving NSBlockOperation. I am unsure whether AFNetworking is responsible or not. The log from Crashlytics:
Exception Type: EXC_BAD_ACCESS Code: KERN_INVALID_ADDRESS at 0x2985118298
5com.apple.NSURLConnectionLoader Crashed
0 libobjc.A.dylib objc_msgSend + 9
1 Foundation -[NSBlockOperation main] + 200
2 Foundation -[__NSOperationInternal start] + 840
3 Foundation -[_NSCFURLProtocolBridgeWithTrampoline processEventQ] + 344
4 Foundation -[_NSCFURLProtocolBridgeWithTrampoline pushEvent:from:] + 298
5 Foundation -[_NSCFURLProtocolBridge stop] + 88
6 Foundation _bridger + 64
7 CFNetwork __block_global_7 + 24
8 CFNetwork __block_global_8 + 12
9 CFNetwork ___performAsync_block_invoke_068 + 18
10 CoreFoundation CFArrayApplyFunction + 176
11 CFNetwork RunloopBlockContext::perform() + 74
12 CFNetwork MultiplexerSource::perform() + 188
13 ... CoreFoundation __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 14
14 CoreFoundation __CFRunLoopDoSources0 + 212
15 CoreFoundation __CFRunLoopRun + 646
16 CoreFoundation CFRunLoopRunSpecific + 356
17 CoreFoundation CFRunLoopRunInMode + 104
18 Foundation +[NSURLConnection(Loader) _resourceLoadLoop:] + 308
19 Foundation __NSThread__main__ + 972
20 libsystem_c.dylib _pthread_start + 308
Let me know if you need more logs. Can anybody direct me in the direction to avoid this crash? Out of 2500 users 76 users has been affected.
Update Sept 17:
Seems like this guy is having the same problem:
iOS Blocks Async Callbacks Causing Crash after View Controller is deallocated.

Related

Mysterious app crash after AppStore update

We have released an app to the AppStore and after an update it crashes after trying to login. We have been heavily relying on a CoreData database in it and we think it is the reason of the crash. Nevertheless I couldn't get any valuable info from the device, just a crash log that features some thread information. Here's how it looks:
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0xd0000008
Crashed Thread: 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libobjc.A.dylib 0x32b3e5b0 objc_msgSend + 16
1 Foundation 0x337cbd18 -[NSError dealloc] + 56
2 libobjc.A.dylib 0x32b40484 (anonymous namespace)::AutoreleasePoolPage::pop(void*) + 164
3 CoreFoundation 0x31bc843c _CFAutoreleasePoolPop + 12
4 Foundation 0x337ccf76 -[NSAutoreleasePool drain] + 118
5 CoreData 0x32f6d4ae -[NSManagedObjectContext save:] + 1206
6 ourapp 0x0012fbf8 0xba000 + 482296
7 CoreData 0x32f70bbe developerSubmittedBlockToNSManagedObjectContextPerform + 86
8 CoreData 0x32f70cee -[NSManagedObjectContext performBlockAndWait:] + 90
9 ourapp 0x0012fb4c 0xba000 + 482124
10 ourapp 0x000c4e08 0xba000 + 44552
11 ourapp 0x000cced4 0xba000 + 77524
12 ourapp 0x000db50a 0xba000 + 136458
13 ourapp 0x0014c41a 0xba000 + 599066
14 Foundation 0x33893ef2 __65-[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:]_block_invoke_0 + 14
15 Foundation 0x337d39ec -[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:] + 196
16 Foundation 0x337d3908 -[NSURLConnectionInternal _withActiveConnectionAndDelegate:] + 56
17 CFNetwork 0x38da65dc ___delegate_didFinishLoading_block_invoke_0 + 24
18 CFNetwork 0x38da5cc8 ___withDelegateAsync_block_invoke_0 + 52
19 CFNetwork 0x38dce130 ___performAsync_block_invoke_068 + 16
20 CoreFoundation 0x31bcb74a CFArrayApplyFunction + 174
21 CFNetwork 0x38dce58e RunloopBlockContext::perform() + 70
22 CFNetwork 0x38d3215a MultiplexerSource::perform() + 186
23 CoreFoundation 0x31c5a680 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 12
24 CoreFoundation 0x31c59f7a __CFRunLoopDoSources0 + 358
25 CoreFoundation 0x31c58cb2 __CFRunLoopRun + 642
26 CoreFoundation 0x31bcbeb8 CFRunLoopRunSpecific + 352
27 CoreFoundation 0x31bcbd44 CFRunLoopRunInMode + 100
28 GraphicsServices 0x399c92e6 GSEventRunModal + 70
29 UIKit 0x394872f4 UIApplicationMain + 1116
30 ourapp 0x000be76a 0xba000 + 18282
31 ourapp 0x000bb684 0xba000 + 5764
Are there any other chances I can get more info out of this situation? How can I plug it in to XCode and possibly trace the crash or it can only be done post-factum?
And most importantly, what do you think is causing the crash?
Our problem was connected with Core Data lightweight migration. We were using the "Magical Record" library for handling our Core Data fetches and updating it solved the problem.
Also, this blog post was quite useful.

app crashes due to map kit with MKReverseGeocoder

I don't understand why this is crashing, whenever i came back to home page this app crashes, I have a file LocationSelectViewController.m when enabling zombie it throws an error
[LocationSelectViewController respondsToSelector:]: message sent to deallocated instance 0x27b96740
Let me share a crash log
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0:
0 libobjc.A.dylib 0x3b2665d0 objc_msgSend + 16
1 MapKit 0x343b7492 -[MKReverseGeocoder _notifyResult:] + 70
2 ProtocolBuffer 0x389631b6 -[PBRequester connectionDidFinishLoading:] + 1042
3 Foundation 0x33eac912 __65-[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:]_block_invoke_0 + 14
4 Foundation 0x33dec764 -[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:] + 196
5 Foundation 0x33dec680 -[NSURLConnectionInternal _withActiveConnectionAndDelegate:] + 56
6 CFNetwork 0x3324d64c ___delegate_didFinishLoading_block_invoke_0 + 24
7 CFNetwork 0x3324cd30 ___withDelegateAsync_block_invoke_0 + 52
8 CFNetwork 0x33275010 ___performAsync_block_invoke_068 + 16
9 CoreFoundation 0x334b6aca CFArrayApplyFunction + 174
10 CFNetwork 0x3327546e RunloopBlockContext::perform() + 70
11 CFNetwork 0x331d945e MultiplexerSource::perform() + 186
12 CoreFoundation 0x335458f4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 12
13 CoreFoundation 0x33545158 __CFRunLoopDoSources0 + 208
14 CoreFoundation 0x33543f2a __CFRunLoopRun + 642
15 CoreFoundation 0x334b7238 CFRunLoopRunSpecific + 352
16 CoreFoundation 0x334b70c4 CFRunLoopRunInMode + 100
17 GraphicsServices 0x37096336 GSEventRunModal + 70
18 UIKit 0x353d32b4 UIApplicationMain + 1116
19 PlanetTran 0x000af534 0xae000 + 5428
20 PlanetTran 0x000af4cc 0xae000 + 5324
Thread 1 name: Dispatch queue: com.apple.libdispatch-manager
Thread 1 Crashed:
0 libsystem_kernel.dylib 0x3b74f5d0 kevent64 + 24
1 libdispatch.dylib 0x3b68ad22 _dispatch_mgr_invoke + 806
2 libdispatch.dylib 0x3b686374 _dispatch_mgr_thread + 32
Try to convert your application in ARC(Automatic reference counting).
message sent to deallocated instance means you are trying to send the message that object is destroyed Automatically so you are getting this exceptions.
For converting in ARC goto Xcode
Edit->Refactor->convert to objective c ARC

Crash in ios 6 and later -[MKStoreManager provideContent:forReceipt:]

I have my app live which is non-consumable type.
App is crashing on iOS 6 and later. It is crashing on user's device but not on testing device.
Crash log says this:
Exception Type: SIGTRAP
Exception Codes: #0 at 0x3350316c
Crashed Thread: 0
Thread 0 Crashed:
0 CoreFoundation 0x3350316c _CFHash + 8
1 CoreFoundation 0x00002b50 CFBasicHashFindBucket + 1892
2 CoreFoundation 0x33503a8b _CFDictionaryGetValue + 83
3 CoreFoundation 0x0004a7a7 -[CFXPreferencesPropertyListSource setValue:forKey:] + 39
4 CoreFoundation 0x0004a723 _CFXPreferencesSetValue + 135
5 CoreFoundation 0x3354a601 _CFPreferencesSetAppValue + 41
6 Foundation 0x00009907 -[NSUserDefaults(NSUserDefaults) setObject:forKey:] + 83
7 myAppName 0x00038287 -[MKStoreManager provideContent:forReceipt:] (MKStoreManager.m:311)
8 myAppName 0x000387b1 -[MKStoreObserver restoreTransaction:] (MKStoreObserver.m:88)
9 myAppName 0x000385e1 -[MKStoreObserver paymentQueue:updatedTransactions:] (MKStoreObserver.m:64)
10 StoreKit 0x0000404d __NotifyObserverAboutChanges + 85
11 CoreFoundation 0x3350874d _CFArrayApplyFunction + 177
12 StoreKit 0x00003fe9 -[SKPaymentQueue _notifyObserversAboutChanges:sendUpdatedDownloads:] + 129
13 StoreKit 0x000048af -[SKPaymentQueue _processUpdates:trimUnmatched:sendUpdatedDownloads:] + 999
14 StoreKit 0x00004f8d -[SKPaymentQueue _setTransactionsWithReply:] + 157
15 StoreKit 0x00003b8b __block_global_0 + 63
16 libdispatch.dylib 0x0000211f _dispatch_call_block_and_release + 11
17 libdispatch.dylib 0x000014b7 _dispatch_client_callout + 23
18 libdispatch.dylib 0x000061bd _dispatch_main_queue_callback_4CF$VARIANT$mp + 225
19 CoreFoundation 0x00095f3b __CFRunLoopRun + 1291
20 CoreFoundation 0x33508ebd _CFRunLoopRunSpecific + 357
21 CoreFoundation 0x33508d49 _CFRunLoopRunInMode + 105
22 GraphicsServices 0x370bb2eb _GSEventRunModal + 75
23 UIKit 0x3541e301 _UIApplicationMain + 1121
24 myAppName 0x0000260f main (main.m:20)
This app supports iOS 4.3 and later.
I have tried in many ways but can't find proper solution. Anyone have any idea how I resolve this? Should I use some other code for in-app purchase?

Crash with MapKit on iOS 6

I have not been able to reproduce this particular crash myself but it has been reported via our crash reporting tool and is being experienced by several hundred of our users. Finding it hard to debug or reproduce.
It happens on all hardware platforms but only on iOS 6. Any help or insights will be highly appreciated.
Exception Type:SIGSEGVCode:SEGV_ACCERR
Fatal Exception
Thread 0 Crashed
0 MapKit _remove(objc_object*, MKQuadTrieNode*) + 13
1 MapKit -[MKQuadTrie remove:] + 54
2 MapKit -[MKAnnotationContainerView observeValueForKeyPath:ofObject:change:context:] + 252
3 Foundation NSKeyValueNotifyObserver + 272
4 Foundation NSKeyValueWillChange + 572
5 Foundation -[NSObject(NSKeyValueObserverNotification) willChangeValueForKey:] + 180
6 Foundation NSKVOForwardInvocation + 130
7 CoreFoundation ___forwarding___ + 626
8 CoreFoundation _CF_forwarding_prep_0 + 24
9 MapKit -[MKUserLocation _updateCoordinate] + 106
10 MapKit -[MKUserLocation setLocation:] + 106
11 MapKit -[MKMapView(UserPositioningInternal) locationManagerUpdatedLocation:] + 994
12 CoreFoundation -[NSArray makeObjectsPerformSelector:withObject:] + 206
13 MapKit -[MKLocationManager _reportLocationStatus:] + 66
14 MapKit -[MKLocationManager locationProvider:didUpdateLocation:] + 1540
15 MapKit -[MKCoreLocationProvider locationManager:didUpdateLocations:] + 864
16 CoreLocation -[CLLocationManager onClientEventLocation:] + 1614
17 CoreLocation __CLClientInvokeCallback_block_invoke_0 + 64
18 CoreFoundation __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12
19 CoreFoundation __CFRunLoopDoBlocks + 160
20 CoreFoundation __CFRunLoopRun + 1450
21 CoreFoundation CFRunLoopRunSpecific + 356
22 CoreFoundation CFRunLoopRunInMode + 104
23 GraphicsServices GSEventRunModal + 74
24 UIKit UIApplicationMain + 1120
25 App Name main.m line 14 main + 14
Try setting the delegate method of the locationManager to nil in the dealloc method of the class you are using it in
Something like this:
-(void) dealloc
{
self.locationManager.delegate = nil;
}
What might be happening is that the object is being deallocated (maybe due to low memory) and the location manager is trying to send a message to a non existing delegate.

ios core data NSFetchedResultsControllerDelegate crash

I am keep getting this error for NSFetchedResultsControllerDelegate.
not sure what to do with it, since it happen sporadically.
I do create the records synchronized, but still ..
any ideas why could this be?
- (Activity *)createActivityWithDictionary:(NSDictionary*)dict
{
#synchronized([DBController sharedManaged])
{
Activity *act = [Activity activityWithDictionary:dict inManagedObjectContext:self.managedObjectContext];
[self saveContext];
return act;
}
}
Date/Time: 2012-09-18 22:55:53.686 -0700
OS Version: iPhone OS 5.1.1 (9B206)
Report Version: 104
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x00000000, 0x00000000
Crashed Thread: 0
Last Exception Backtrace:
0 CoreFoundation 0x3724188f __exceptionPreprocess + 163
1 libobjc.A.dylib 0x34f46259 objc_exception_throw + 33
2 CoreFoundation 0x37244a9b -[NSObject doesNotRecognizeSelector:] + 175
3 CoreFoundation 0x37243915 ___forwarding___ + 301
4 CoreFoundation 0x3719e650 _CF_forwarding_prep_0 + 48
5 CoreData 0x36a78f4d -[NSFetchedResultsController(PrivateMethods) _managedObjectContextDidChange:] + 2401
6 Foundation 0x37aa64ff __57-[NSNotificationCenter addObserver:selector:name:object:]_block_invoke_0 + 19
7 CoreFoundation 0x3720d547 ___CFXNotificationPost_block_invoke_0 + 71
8 CoreFoundation 0x37199097 _CFXNotificationPost + 1407
9 Foundation 0x37a1a3eb -[NSNotificationCenter postNotificationName:object:userInfo:] + 67
10 CoreData 0x36a00839 -[NSManagedObjectContext(_NSInternalNotificationHandling) _postObjectsDidChangeNotificationWithUserInfo:] + 77
11 CoreData 0x36a0031d -[NSManagedObjectContext(_NSInternalChangeProcessing) _createAndPostChangeNotification:withDeletions:withUpdates:withRefreshes:] + 305
12 CoreData 0x36a09d01 -[NSManagedObjectContext(_NSInternalChangeProcessing) _processRecentChanges:] + 1245
13 CoreData 0x369fd145 -[NSManagedObjectContext save:] + 201
14 PalFinds 0x000a57cb -[DBController saveContext] (DBController.m:75)
15 PalFinds 0x000a8dff -[DBController createActivityWithDictionaries:] (DBController.m:852)
16 PalFinds 0x00086649 -[PFMe finishRequest:andRestConnection:] (PFMe.m:1986)
17 PalFinds 0x0002e17d -[RestConnection connectionDidFinishLoading:] (RestConnection.m:326)
18 Foundation 0x37addc29 __65-[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:]_block_invoke_0 + 17
19 Foundation 0x37a356d9 -[NSURLConnectionInternalConnection invokeForDelegate:] + 29
20 Foundation 0x37a356a3 -[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:] + 199
21 Foundation 0x37a355c5 -[NSURLConnectionInternal _withActiveConnectionAndDelegate:] + 61
22 CFNetwork 0x36ed97f5 URLConnectionClient::_clientDidFinishLoading(URLConnectionClient::ClientConnectionEventQueue*) + 193
23 CFNetwork 0x36ece4a5 URLConnectionClient::ClientConnectionEventQueue::processAllEventsAndConsumePayload(XConnectionEventInfo<XClientEvent, XClientEventParams>*, long) + 425
24 CFNetwork 0x36ece599 URLConnectionClient::ClientConnectionEventQueue::processAllEventsAndConsumePayload(XConnectionEventInfo<XClientEvent, XClientEventParams>*, long) + 669
25 CFNetwork 0x36ece599 URLConnectionClient::ClientConnectionEventQueue::processAllEventsAndConsumePayload(XConnectionEventInfo<XClientEvent, XClientEventParams>*, long) + 669
26 CFNetwork 0x36ece1a3 URLConnectionClient::processEvents() + 107
27 CFNetwork 0x36ece0d9 MultiplexerSource::perform() + 157
28 CoreFoundation 0x37215ad3 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
29 CoreFoundation 0x3721529f __CFRunLoopDoSources0 + 215
30 CoreFoundation 0x37214045 __CFRunLoopRun + 653
31 CoreFoundation 0x371974a5 CFRunLoopRunSpecific + 301
32 CoreFoundation 0x3719736d CFRunLoopRunInMode + 105
33 GraphicsServices 0x33956439 GSEventRunModal + 137
34 UIKit 0x30f43cd5 UIApplicationMain + 1081
35 PalFinds 0x000038bf main (main.mm:14)
36 PalFinds 0x00003878 start + 40
Looks like it's trying to call the delegate back and the delegate isn't implementing a method it's supposed to.
I'm thinking either controller:didChangeObject:atIndexPath:forChangeType:newIndexPath: or controllerDidChangeContent:
Did you implement those methods in your NSFetchedResultsControllerDelegate?
I know this might seem far fetched BUT I had a very similar problem and I had all those methods implemented and then I realized I had my release commented out for the fetchedREsultsController...once I put that back in no more sigbart and works like a charm.
All I'm saying is that sometimes the error isn't always the obvious.
We would need to see a bit more code to figure it out. Thanks.