Instagram / IGListKit

A data-driven UICollectionView framework for building fast and flexible lists.
https://instagram.github.io/IGListKit/
MIT License
12.84k stars 1.54k forks source link

Crash IGListAdapter performUpdatesAnimated:completion: #1562

Open IgorNikiforovV opened 2 years ago

IgorNikiforovV commented 2 years ago

New issue checklist

General information

Debug information

Hello. I'm working with a showcase of collection cells in my project. Firebase crashlytics shows me this crash on real users. This crash itself has not yet been able to reproduce. The crash occurs in the line:

    private func updateCollectionView(animation: Bool = true, completion: ((Bool) -> Void)? = nil) {
        self.adapter.performUpdates(animated: animation, completion: completion)
    }
Fatal Exception: NSInternalInconsistencyException
0  CoreFoundation                 0x9270c __exceptionPreprocess
1  libobjc.A.dylib                0x14f04 objc_exception_throw
2  Foundation                     0x124c60 -[NSMutableDictionary(NSMutableDictionary) initWithContentsOfFile:]
3  IGListKit                      0x7928 (Missing UUID 773d79ad3e88310681855f42b4dbdeb0)
4  MTSTV Fairplay                 0x1fdcb4c HomeSceneViewController.updateCollectionView(animation:completion:) + 263 (HomeSceneViewController.swift:263)
5  MTSTV Fairplay                 0x1fe0528 HomeSceneViewController.displayAddedObjects(with:) + 493 (HomeSceneViewController.swift:493)
6  MTSTV Fairplay                 0x1fe49f0 protocol witness for HomeSceneDisplayLogic.displayAddedObjects(with:) in conformance HomeSceneViewController (<compiler-generated>)
7  MTSTV Fairplay                 0x2ee58 HomeScenePresenter.didLoadNextPage(with:) + 412 (HomeScenePresenter.swift:412)
8  MTSTV Fairplay                 0x32e20 protocol witness for HomeScenePresentationLogic.didLoadNextPage(with:) in conformance HomeScenePresenter (<compiler-generated>)
9  MTSTV Fairplay                 0x1b9ba74 closure #1 in HomeSceneInteractor.configurePagingManager() + 136 (HomeSceneInteractor.swift:136)
10 MTSTV Fairplay                 0x1824444 PagingManagerImplementation.didReceiveList(with:receivePagingObject:responce:) + 126 (PagingManagerImplementation.swift:126)
11 MTSTV Fairplay                 0x18240f0 closure #1 in PagingManagerImplementation.loadList(offset:count:) + 102 (PagingManagerImplementation.swift:102)
12 MTSTV Fairplay                 0xfe26e4 PageReceivingWorker.obtainVideoSectionsList(with:count:queue:completion:) + 62 (PageReceivingWorker.swift:62)
13 MTSTV Fairplay                 0xfe4614 PageReceivingWorker.loadList(with:count:completion:) + 259 (PageReceivingWorker.swift:259)
14 MTSTV Fairplay                 0xfe463c protocol witness for PagingListProtocol.loadList(with:count:completion:) in conformance PageReceivingWorker (<compiler-generated>)
15 MTSTV Fairplay                 0x1823f0c PagingManagerImplementation.loadList(offset:count:) + 95 (PagingManagerImplementation.swift:95)
16 MTSTV Fairplay                 0x1823a74 PagingManagerImplementation.needLoadList(withParameters:) + 89 (PagingManagerImplementation.swift:89)
17 MTSTV Fairplay                 0x1823978 PagingManagerImplementation.loadNextPage(withParameters:) + 59 (PagingManagerImplementation.swift:59)
18 MTSTV Fairplay                 0x18236b4 PagingManagerImplementation.reload(withParameters:) + 55 (PagingManagerImplementation.swift:55)
19 MTSTV Fairplay                 0x18246a4 protocol witness for PagingManager.reload(withParameters:) in conformance PagingManagerImplementation (<compiler-generated>)
20 MTSTV Fairplay                 0x1b9e620 closure #1 in HomeSceneInteractor.refreshAllData(with:) + 255 (HomeSceneInteractor.swift:255)
21 MTSTV Fairplay                 0x14fd8 thunk for @escaping @callee_guaranteed () -> () (<compiler-generated>)
22 libdispatch.dylib              0x63094 _dispatch_call_block_and_release
23 libdispatch.dylib              0x64094 _dispatch_client_callout
24 libdispatch.dylib              0x13cb8 _dispatch_root_queue_drain
25 libdispatch.dylib              0x14398 _dispatch_worker_thread2
26 libsystem_pthread.dylib        0x1dd4 _pthread_wqthread
27 libsystem_pthread.dylib        0x193c start_wqthread
TimOliver commented 1 year ago

Hi @IgorNikiforovV! Are you sure this is an IGListKit issue? The stack trace seems to be indicating an NSMutableDictionary being loaded from disk is failing.