Description
[READ] Step 1: Are you in the right place?
- For issues or feature requests related to the code in this repository
file a Github issue.- If this is a feature request make sure the issue title starts with "FR:".
- For general technical questions, post a question on StackOverflow
with the firebase tag. - For general Firebase discussion, use the firebase-talk
google group. - For help troubleshooting your application that does not fall under one
of the above categories, reach out to the personalized
Firebase support channel.
[REQUIRED] Step 2: Describe your environment
- Xcode version: 12.1
- Firebase SDK version: 5.20.1
- Firebase Component: Firestore_ (Auth, Core, Database, Firestore, Messaging, Storage, etc)
- Component version: 1.2.1_
[REQUIRED] Step 3: Describe the problem
App crashes (as detected by Crashlytics). Apparently while in garbage collection. I have a stack trace but it doesn't make much sense as it appears to be collection 0 garbage, and fails as operation not permitted on a file. The error and stack trace are likely the most useful items:
error:
Fatal Exception: NSInternalInconsistencyException
FIRESTORE INTERNAL ASSERTION FAILED: Failed to commit transaction: <LevelDbTransaction Collect garbage: 0 changes (0 bytes):> Failed: IO error: /var/mobile/Containers/Data/Application/919A1947-23CF-45C9-A46F-EAEAA0787A06/Documents/firestore/__FIRAPP_DEFAULT/kscoreapp/main/000015.log: Operation not permitted (expected status.ok())
stack:
Fatal Exception: NSInternalInconsistencyException
0 CoreFoundation 0x191990518 __exceptionPreprocess
1 libobjc.A.dylib 0x190b6b9f8 objc_exception_throw
2 CoreFoundation 0x1918aa148 +[_CFXNotificationTokenRegistration keyCallbacks]
3 Foundation 0x1923b9f5c -[NSAssertionHandler handleFailureInFunction:file:lineNumber:description:]
4 KScoreApp 0x100bfcfcc firebase::firestore::util::internal::Fail(char const*, char const*, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) (hard_assert_apple.mm:34)
5 KScoreApp 0x100bfd0e4 firebase::firestore::util::internal::Fail(char const*, char const*, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, char const*) (hard_assert_apple.mm:54)
6 KScoreApp 0x100c0a1b0 firebase::firestore::local::LevelDbTransaction::Commit() (leveldb_transaction.cc:211)
7 KScoreApp 0x100bb568c -[FSTLevelDB commitTransaction] (FSTLevelDB.mm:505)
8 KScoreApp 0x100bbeffc -[FSTLocalStore collectGarbage:] (FSTPersistence.h:216)
9 KScoreApp 0x100bac900 std::__1::__function::__func<-[FSTFirestoreClient scheduleLruGarbageCollection]::$_3, std::__1::allocator<-[FSTFirestoreClient scheduleLruGarbageCollection]::$_3>, void ()>::operator()() (FSTFirestoreClient.mm:267)
10 KScoreApp 0x100b71dbc firebase::firestore::util::AsyncQueue::ExecuteBlocking(std::__1::function<void ()> const&) (atomic:921)
11 KScoreApp 0x100b84ebc firebase::firestore::util::TimeSlot::InvokedByLibdispatch(void*) (executor_libdispatch.mm:179)
12 libdispatch.dylib 0x1913d17d4 _dispatch_client_callout
13 libdispatch.dylib 0x191376018 _dispatch_continuation_pop$VARIANT$mp
14 libdispatch.dylib 0x191385fa4 _dispatch_source_invoke$VARIANT$mp
15 libdispatch.dylib 0x19137a1ec _dispatch_lane_serial_drain$VARIANT$mp
16 libdispatch.dylib 0x19137ae3c _dispatch_lane_invoke$VARIANT$mp
17 libdispatch.dylib 0x1913834a8 _dispatch_workloop_worker_thread
18 libsystem_pthread.dylib 0x1915b1114 _pthread_wqthread
19 libsystem_pthread.dylib 0x1915b3cd4 start_wqthread
Steps to reproduce:
I would love to have steps to reproduce but I haven't seen this locally, and don't have the logs or discussion of steps from relevant users / devices
Any instinct on how this could happen that could help me pinpoint it would be welcome
Relevant Code:
Unsure as this appears to be an internal routine. The relevant file appears to have last been edited by Grand Moff Harkin long ago and I'm not familiar enough with Firestore internals to make any guess as to possible modes of failure in a GC.
I may have missed them but I was similarly unable to find any open or closed issues in this repo that seemed relevant though I did try.