Пожалуйста, помогите лучше разобраться в сбоях. Подробности сбоев: с Core Data на iOS 14, Xcode 12

У меня нет большого опыта в этом. Я ничего не менял в своем коде, но после iOS 14 у меня начались вылеты и только для операционных систем iOS 14. Может, в Core Data что-то изменилось? Вот подробности аварийного журнала и Firebase. Большое спасибо!

Я попытался поймать его и вот что нашел:

==13048==ERROR: AddressSanitizer: allocator is out of memory trying to allocate 0x1a0 bytes
==13048==FATAL: AddressSanitizer: internal allocator is out of memory trying to allocate 0x50 bytes
AddressSanitizer report breakpoint hit. Use 'thread info -s' to get extended information about the report.
(lldb)  thread info -s
thread #1: tid = 0x12fa63, 0x00000001041961f8 libclang_rt.asan_ios_dynamic.dylib`__asan::AsanDie(), queue = 'SQLQueue 0x16572e2c0 for MyApp.sqlite', stop reason = AddressSanitizer detected: out-of-memory

{
  "access_size": 0,
  "access_type": 0,
  "address": 0,
  "description": "out-of-memory",
  "instrumentation_class": "AddressSanitizer",
  "pc": 0,
  "stop_type": "fatal_error"
}

Моя функция, из-за которой, как мне кажется, произошел сбой.

 (NSMutableArray *)getObjectsforEntity:(NSString *)strEntity sortBy:(NSString *)strSort isAscending:(BOOL)ascending predicate:(NSPredicate *)predicate {
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:strEntity];
    if (strSort) {
        NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:strSort ascending:ascending];
        [fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];
    }
    if (predicate) {

        [fetchRequest setPredicate:predicate];
    }
    NSError *error;
    NSMutableArray *result = [[[[self managedObjectContext] executeFetchRequest:fetchRequest error:&error] mutableCopy ]autorelease];
    if (result == nil) {
        return [[NSMutableArray alloc] init];
    }
    return result;
}

<Сильный> Crashlog Тема 5 Crashed: 0 CoreData 0x000000019d9fb6b8 _PFObjectIDFastHash64 + 36 (NSBasicObjectID.m: 707) 1 CoreData 0x000000019d9fb6b4 _PFObjectIDFastHash64 + 32 (NSBasicObjectID.m: 706) 2 CoreFoundation 0x0000000197c1c10c __CFBasicHashRehash + 996 (CFBasicHash.c: 477 ) 3 CoreFoundation 0x0000000197c1fdf4 CFBasicHashRemoveValue + 2352 (CFBasicHash.c: 1 386) 4 CoreFoundation 0x0000000197b3e2f8 CFDictionaryRemoveValue + 224 (CFDictionary.c: 471) 5 CoreData 0x000000019d94b8e8 - [NSManagedObjectContext (_NSInternalAdditions) _forgetObject: propagateToObjectStore: removeFromRegistry:] + 120 (NSManagedObjectContext.m: 5088) 6 CoreData 0x000000019d92b450 - [_ PFManagedObjectReferenceQueue _processReferenceQueue:] + 864 (NSManagedObjectContext.m: 5077) 7 CoreData 0x000000019da43578 __90- [NSManagedObjectContex т (_NSInternalNotificationHandling) _registerAsyncReferenceCallback] _block_invoke + 68 (NSManagedObjectContext.m: 8825) 8 CoreData 0x000000019da39b18 developerSubmittedBlockToNSManagedObjectContextPerform + 156 (NSManagedObjectContext.m: 3880) 9 libdispatch.dylib 0x000000019782b280 _dispatch_client_callout + 16 (object.m: 559) 10 libdispatch.dylib 0x00000001977d3fa8 _dispatch_lane_serial_drain $ VARIANT $ mp + 612 (inline_internal.h: 2548) 11 libdispatch.dylib 0x00000001977d4a84 _dispatch_lane_invoke $ VARIANT $ mp + 424 (queue.c: 3862) 12 libdispatch.dylib 0x00000001977de_work 13: libdispatch. dylib 0x00000001dc7005a4 _pthread_wqthread + 272 (pthread.c: 2193) 14 libsystem_pthread.dylib 0x00000001dc703874 start_wqthread + 8

Thread 5 crashed with ARM Thread State (64-bit):
    x0: 0x0000000000000000   x1: 0x0000000000000000   x2: 0x0000000000000000   x3: 0x0000000155e57240
    x4: 0x0000000155e570c0   x5: 0x0000000155f2d800   x6: 0x0000000000000015   x7: 0x0000000000000000
    x8: 0x0000000000000005   x9: 0x000000019d9fb694  x10: 0x0000000157008200  x11: 0x0000000197dc6c60
   x12: 0x0000000000000002  x13: 0x0000000000080003  x14: 0x00000000deeea853  x15: 0x000000000000bed5
   x16: 0x00000001ab41abec  x17: 0x0000000000000002  x18: 0x0000000000000000  x19: 0x0000000000000000
   x20: 0x0000000000000000  x21: 0x0000000000000000  x22: 0x0000000155f80520  x23: 0x0000000000000047
   x24: 0x0000000000000000  x25: 0x0000000281857980  x26: 0x0000000000000001  x27: 0x0000000282e2c068
   x28: 0x0000000000000047   fp: 0x000000016f716070   lr: 0x000000019d9fb6b4
    sp: 0x000000016f716060   pc: 0x000000019d9fb6b8 cpsr: 0x80000000
   esr: 0x92000005 (Data Abort) byte read Translation fault

Firebase

Первый сбой

Crashed: com.apple.main-thread
0  CoreData                       0x1abc966b8 _PFObjectIDFastHash64 + 36
1  CoreFoundation                 0x1a5eb710c __CFBasicHashRehash + 996
2  CoreFoundation                 0x1a5ebadf4 CFBasicHashRemoveValue + 2352
3  CoreFoundation                 0x1a5dd92f8 CFDictionaryRemoveValue + 224
4  CoreData                       0x1abbe68e8 -[NSManagedObjectContext(_NSInternalAdditions) _forgetObject:propagateToObjectStore:removeFromRegistry:] + 120
5  CoreData                       0x1abbc6450 -[_PFManagedObjectReferenceQueue _processReferenceQueue:] + 864
6  CoreData                       0x1abc8e914 -[_PFAutoreleasePoolThunk dealloc] + 40
7  libobjc.A.dylib                0x1b96d2584 AutoreleasePoolPage::releaseUntil(objc_object**) + 200
8  libobjc.A.dylib                0x1b96d2460 objc_autoreleasePoolPop + 208
9  CoreFoundation                 0x1a5e98a1c _CFAutoreleasePoolPop + 28
10 CoreFoundation                 0x1a5e0da30 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 28
11 CoreFoundation                 0x1a5e0d634 __CFRunLoopDoTimer + 1004
12 CoreFoundation                 0x1a5e0cb14 __CFRunLoopDoTimers + 324
13 CoreFoundation                 0x1a5e06eb0 __CFRunLoopRun + 1912
14 CoreFoundation                 0x1a5e06200 CFRunLoopRunSpecific + 572
15 GraphicsServices               0x1bbf01598 GSEventRunModal + 160
16 UIKitCore                      0x1a86cc004 -[UIApplication _run] + 1052
17 UIKitCore                      0x1a86d15d8 UIApplicationMain + 164
18 MyApp                          0x100a53a00 main + 14 (AppDelegate.swift:14)
19 libdyld.dylib                  0x1a5ae5598 start + 4

Второй сбой

Crashed: com.apple.main-thread
0  libobjc.A.dylib                0x1b791e148 object_getClass + 12
1  CoreData                       0x1a9f026b0 _PFObjectIDFastHash64 + 28
2  CoreFoundation                 0x1a412310c __CFBasicHashRehash + 996
3  CoreFoundation                 0x1a4126df4 CFBasicHashRemoveValue + 2352
4  CoreFoundation                 0x1a40452f8 CFDictionaryRemoveValue + 224
5  CoreData                       0x1a9e528e8 -[NSManagedObjectContext(_NSInternalAdditions) _forgetObject:propagateToObjectStore:removeFromRegistry:] + 120
6  CoreData                       0x1a9e32450 -[_PFManagedObjectReferenceQueue _processReferenceQueue:] + 864
7  CoreData                       0x1a9efa914 -[_PFAutoreleasePoolThunk dealloc] + 40
8  libobjc.A.dylib                0x1b793e584 AutoreleasePoolPage::releaseUntil(objc_object**) + 200
9  libobjc.A.dylib                0x1b793e460 objc_autoreleasePoolPop + 208
10 libdispatch.dylib              0x1a3d0e514 _dispatch_lane_serial_drain$VARIANT$armv81 + 592
11 libdispatch.dylib              0x1a3d0f01c _dispatch_lane_invoke$VARIANT$armv81 + 456
12 libdispatch.dylib              0x1a3d144a0 _dispatch_main_queue_callback_4CF$VARIANT$armv81 + 576
13 CoreFoundation                 0x1a4078c30 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12
14 CoreFoundation                 0x1a40730e8 __CFRunLoopRun + 2480
15 CoreFoundation                 0x1a4072200 CFRunLoopRunSpecific + 572
16 GraphicsServices               0x1ba16d598 GSEventRunModal + 160
17 UIKitCore                      0x1a6938004 -[UIApplication _run] + 1052
18 UIKitCore                      0x1a693d5d8 UIApplicationMain + 164
19 MyApp                          0x1005e6d50 main + 15 (AppDelegate.swift:15)
20 libdyld.dylib                  0x1a3d51598 start + 4

Третья авария

Crashed: NSManagedObjectContext 0x2826edc70
0  libsystem_kernel.dylib         0x1b429195c __pthread_kill + 8
1  libsystem_pthread.dylib        0x1cebbb9e8 pthread_kill + 212
2  libsystem_c.dylib              0x192cf8934 abort + 100
3  libsystem_malloc.dylib         0x1989c2030 _malloc_put + 554
4  libsystem_malloc.dylib         0x1989c22a4 malloc_zone_error + 100
5  libsystem_malloc.dylib         0x1989ab9f0 szone_free + 460
6  CoreFoundation                 0x18a0d86bc __CFBasicHashRehash + 2452
7  CoreFoundation                 0x18a0dbdf4 CFBasicHashRemoveValue + 2352
8  CoreFoundation                 0x189ffa2f8 CFDictionaryRemoveValue + 224
9  CoreData                       0x18fe078e8 -[NSManagedObjectContext(_NSInternalAdditions) _forgetObject:propagateToObjectStore:removeFromRegistry:] + 120
10 CoreData                       0x18fde7450 -[_PFManagedObjectReferenceQueue _processReferenceQueue:] + 864
11 CoreData                       0x18feff578 __90-[NSManagedObjectContext(_NSInternalNotificationHandling) _registerAsyncReferenceCallback]_block_invoke + 68
12 CoreData                       0x18fef5b18 developerSubmittedBlockToNSManagedObjectContextPerform + 156
13 libdispatch.dylib              0x189ce7280 _dispatch_client_callout + 16
14 libdispatch.dylib              0x189c8ffa8 _dispatch_lane_serial_drain$VARIANT$mp + 612
15 libdispatch.dylib              0x189c90a84 _dispatch_lane_invoke$VARIANT$mp + 424
16 libdispatch.dylib              0x189c9a518 _dispatch_workloop_worker_thread + 712
17 libsystem_pthread.dylib        0x1cebbc5a4 _pthread_wqthread + 272
18 libsystem_pthread.dylib        0x1cebbf874 start_wqthread + 8

person Aeerien    schedule 30.10.2020    source источник


Ответы (1)


Ошибка, которую вы ищете, заключается в следующем:

CoreData 0x000000019da39b18 developerSubmittedBlockToNSManagedObjectContextPerform + 156

Обычно это означает, что вы создаете объект в одном контексте и сохраняете в другом.

Вы сможете точно определить проблему, добавив аргументы запуска для Core Data, например -com.apple.CoreData.ConcurrencyDebug 1

Вы можете узнать больше об отладке в этой замечательной статье.

person Stamenkovski    schedule 30.10.2020
comment
Стаменковский, Спасибо! - person Aeerien; 31.10.2020