EXC_BAD_ACCESS KERN_INVALID_ADDRESS crashes in CoreData

I recently changed the persistence in my iOS app to Core Data, and I've been seeing lots of crashes in Crashlytics that I can't reproduce locally or understand how to debug. The best advice I'd found so far is to enable com.apple.CoreData.ConcurrencyDebug while running the app from Xcode, which helped me find lots of potential issues and to fix them by wrapping the offending code in perform closures. But I haven't found any more errors with that option, and there are still dozens of crashes showing up that look like they must also be coming from Core Data.

The two most frequent reports from Crashlytics are these:

Crashed: NSManagedObjectContext: BackgroundContext - EXC_BAD_ACCESS KERN_INVALID_ADDRESS

0  CoreFoundation                 0x2193c __CFBasicHashRehash + 740
1  CoreFoundation                 0x6d6a4 CFBasicHashRemoveValue + 2332
2  CoreFoundation                 0x94300 CFDictionaryRemoveValue + 328
3  CoreData                       0x4154 -[NSManagedObjectContext(_NSInternalAdditions) _forgetObject:propagateToObjectStore:removeFromRegistry:] + 120
4  CoreData                       0x3d20 -[_PFManagedObjectReferenceQueue _processReferenceQueue:] + 616
5  CoreData                       0x5d8d8 -[_PFAutoreleasePoolThunk dealloc] + 48
6  libobjc.A.dylib                0x15d8 AutoreleasePoolPage::releaseUntil(objc_object**) + 196
7  libobjc.A.dylib                0x4f80 objc_autoreleasePoolPop + 256
8  CoreData                       0x82e78 developerSubmittedBlockToNSManagedObjectContextPerform + 284
9  libdispatch.dylib              0x3f88 _dispatch_client_callout + 20
10 libdispatch.dylib              0xb640 _dispatch_lane_serial_drain + 672
11 libdispatch.dylib              0xc18c _dispatch_lane_invoke + 384
12 libdispatch.dylib              0x16e10 _dispatch_workloop_worker_thread + 652
13 libsystem_pthread.dylib        0xdf8 _pthread_wqthread + 288
14 libsystem_pthread.dylib        0xb98 start_wqthread + 8

and

Crashed: NSManagedObjectContext: BackgroundContext - EXC_BAD_ACCESS KERN_INVALID_ADDRESS

0  CoreData                       0x8e840 -[NSManagedObjectContext _dispose:] + 476
1  CoreData                       0x94bf4 -[NSManagedObjectContext _dealloc__] + 604
2  CoreData                       0xe5728 __internalBlockToDeallocNSManagedObjectContext_block_invoke + 56
3  CoreData                       0x82df8 developerSubmittedBlockToNSManagedObjectContextPerform + 156
4  libdispatch.dylib              0x3f88 _dispatch_client_callout + 20
5  libdispatch.dylib              0xb640 _dispatch_lane_serial_drain + 672
6  libdispatch.dylib              0xc18c _dispatch_lane_invoke + 384
7  libdispatch.dylib              0x16e10 _dispatch_workloop_worker_thread + 652
8  libsystem_pthread.dylib        0xdf8 _pthread_wqthread + 288
9  libsystem_pthread.dylib        0xb98 start_wqthread + 8

Can anyone understand where in my code I should be looking, and what I should look for?

EXC_BAD_ACCESS KERN_INVALID_ADDRESS crashes in CoreData
 
 
Q