{
"pins" : [
{
"identity" : "abseil-cpp-swiftpm",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/abseil-cpp-SwiftPM.git",
"state" : {
"revision" : "d302de612e3d57c6f4afaf087da18fba8eac72a7",
"version" : "0.20220203.1"
}
},
{
"identity" : "alamofire",
"kind" : "remoteSourceControl",
"location" : "https://github.com/Alamofire/Alamofire.git",
"state" : {
"revision" : "f82c23a8a7ef8dc1a49a8bfc6a96883e79121864",
"version" : "5.5.0"
}
},
{
"identity" : "appauth-ios",
"kind" : "remoteSourceControl",
"location" : "https://github.com/openid/AppAuth-iOS.git",
"state" : {
"revision" : "3d36a58a2b736f7bc499453e996a704929b25080",
"version" : "1.6.0"
}
},
{
"identity" : "boringssl-swiftpm",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/boringssl-SwiftPM.git",
"state" : {
"revision" : "79db6516894a932d0ddaff3b05b9da1e4f6c4069",
"version" : "0.9.0"
}
},
{
"identity" : "braintree-ios-drop-in",
"kind" : "remoteSourceControl",
"location" : "https://github.com/braintree/braintree-ios-drop-in",
"state" : {
"revision" : "d4ee6799c70ab70545054acf60475315c5fd6196",
"version" : "9.5.0"
}
},
{
"identity" : "braintree_ios",
"kind" : "remoteSourceControl",
"location" : "https://github.com/braintree/braintree_ios",
"state" : {
"revision" : "5013d5bc515ddbe8b50465f10fd7545430d7c86f",
"version" : "5.12.0"
}
},
{
"identity" : "eventsource",
"kind" : "remoteSourceControl",
"location" : "https://github.com/inaka/EventSource",
"state" : {
"branch" : "master",
"revision" : "78934b361891c7d0fa3d399d128e959f0c94d267"
}
},
{
"identity" : "facebook-ios-sdk",
"kind" : "remoteSourceControl",
"location" : "https://github.com/facebook/facebook-ios-sdk",
"state" : {
"revision" : "c19607d535864533523d1f437c84035e5fb101cf",
"version" : "14.1.0"
}
},
{
"identity" : "firebase-ios-sdk",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/firebase-ios-sdk.git",
"state" : {
"revision" : "5c4893c55f9d6114e2bb7c691d7ffd81208ac713",
"version" : "10.0.0"
}
},
{
"identity" : "fittedsheets",
"kind" : "remoteSourceControl",
"location" : "https://github.com/gordontucker/FittedSheets",
"state" : {
"revision" : "65f9c93718f96c6de234d38c9976e67a0d9e2b28",
"version" : "2.4.2"
}
},
{
"identity" : "googleappmeasurement",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/GoogleAppMeasurement.git",
"state" : {
"revision" : "e3dd02f390cae79a7073b46dfb0cb6b60c48401b",
"version" : "10.0.0"
}
},
{
"identity" : "googledatatransport",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/GoogleDataTransport.git",
"state" : {
"revision" : "5056b15c5acbb90cd214fe4d6138bdf5a740e5a8",
"version" : "9.2.0"
}
},
{
"identity" : "googlesignin-ios",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/GoogleSignIn-iOS",
"state" : {
"revision" : "9c9b36af86a4dd3da16048a36cf37351e63ccfe1",
"version" : "6.2.4"
}
},
{
"identity" : "googleutilities",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/GoogleUtilities.git",
"state" : {
"revision" : "68ea347bdb1a69e2d2ae2e25cd085b6ef92f64cb",
"version" : "7.9.0"
}
},
{
"identity" : "grpc-ios",
"kind" : "remoteSourceControl",
"location" : "https://github.com/grpc/grpc-ios.git",
"state" : {
"revision" : "abd2d5a4347efa0454606a788678a5d8ec223738",
"version" : "1.44.0-grpc"
}
},
{
"identity" : "gtm-session-fetcher",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/gtm-session-fetcher.git",
"state" : {
"revision" : "d4289da23e978f37c344ea6a386e5546e2466294",
"version" : "2.1.0"
}
},
{
"identity" : "gtmappauth",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/GTMAppAuth.git",
"state" : {
"revision" : "6dee0cde8a1b223737a5159e55e6b4ec16bbbdd9",
"version" : "1.3.1"
}
},
{
"identity" : "haishinkit.swift",
"kind" : "remoteSourceControl",
"location" : "https://github.com/shogo4405/HaishinKit.swift",
"state" : {
"revision" : "8fc3f3b1a52778dc42ebe64b26e67b4a6b9027e0",
"version" : "1.2.3"
}
},
{
"identity" : "keychainaccess",
"kind" : "remoteSourceControl",
"location" : "https://github.com/kishikawakatsumi/KeychainAccess.git",
"state" : {
"revision" : "84e546727d66f1adc5439debad16270d0fdd04e7",
"version" : "4.2.2"
}
},
{
"identity" : "leveldb",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/leveldb.git",
"state" : {
"revision" : "0706abcc6b0bd9cedfbb015ba840e4a780b5159b",
"version" : "1.22.2"
}
},
{
"identity" : "logboard",
"kind" : "remoteSourceControl",
"location" : "https://github.com/shogo4405/Logboard.git",
"state" : {
"revision" : "8cc7656b07e4d327fae42e1320e2e48b8868e3f6",
"version" : "2.2.2"
}
},
{
"identity" : "moya",
"kind" : "remoteSourceControl",
"location" : "https://github.com/Moya/Moya.git",
"state" : {
"revision" : "9b906860e3c3c09032879465c471e6375829593f",
"version" : "15.0.0"
}
},
{
"identity" : "nanopb",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/nanopb.git",
"state" : {
"revision" : "819d0a2173aff699fb8c364b6fb906f7cdb1a692",
"version" : "2.30909.0"
}
},
{
"identity" : "nuke",
"kind" : "remoteSourceControl",
"location" : "https://github.com/kean/Nuke.git",
"state" : {
"revision" : "a002b7fd786f2df2ed4333fe73a9727499fd9d97",
"version" : "10.11.2"
}
},
{
"identity" : "paypalcheckout-ios",
"kind" : "remoteSourceControl",
"location" : "https://github.com/paypal/paypalcheckout-ios",
"state" : {
"revision" : "122a8a67f30b55768321e3cb3d30ce6792585063",
"version" : "0.100.0"
}
},
{
"identity" : "promises",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/promises.git",
"state" : {
"revision" : "46c1e6b5ac09d8f82c991061c659f67e573d425d",
"version" : "2.1.0"
}
},
{
"identity" : "prynttrimmerview",
"kind" : "remoteSourceControl",
"location" : "https://github.com/HHK1/PryntTrimmerView",
"state" : {
"revision" : "ac1b60a22c7e6a6514de7a66d2f3d5b537c956d5",
"version" : "4.0.2"
}
},
{
"identity" : "reactiveswift",
"kind" : "remoteSourceControl",
"location" : "https://github.com/ReactiveCocoa/ReactiveSwift.git",
"state" : {
"revision" : "c43bae3dac73fdd3cb906bd5a1914686ca71ed3c",
"version" : "6.7.0"
}
},
{
"identity" : "rxswift",
"kind" : "remoteSourceControl",
"location" : "https://github.com/ReactiveX/RxSwift.git",
"state" : {
"revision" : "b4307ba0b6425c0ba4178e138799946c3da594f8",
"version" : "6.5.0"
}
},
{
"identity" : "skeletonview",
"kind" : "remoteSourceControl",
"location" : "https://github.com/Juanpe/SkeletonView",
"state" : {
"revision" : "ca7d2edceee613e47b7857029fc82de633460e6f",
"version" : "1.30.2"
}
},
{
"identity" : "stevia",
"kind" : "remoteSourceControl",
"location" : "https://github.com/freshOS/Stevia",
"state" : {
"revision" : "87dd17a86240f16788239a78dd8be11c4b013150",
"version" : "4.8.0"
}
},
{
"identity" : "swift-protobuf",
"kind" : "remoteSourceControl",
"location" : "https://github.com/apple/swift-protobuf.git",
"state" : {
"revision" : "e1499bc69b9040b29184f7f2996f7bab467c1639",
"version" : "1.19.0"
}
},
{
"identity" : "swiftdate",
"kind" : "remoteSourceControl",
"location" : "https://github.com/malcommac/SwiftDate.git",
"state" : {
"revision" : "6190d0cefff3013e77ed567e6b074f324e5c5bf5",
"version" : "6.3.1"
}
},
{
"identity" : "ypimagepicker",
"kind" : "remoteSourceControl",
"location" : "https://github.com/Yummypets/YPImagePicker.git",
"state" : {
"revision" : "4dbae7a1f69db3d65c47f4106d0ca09f678edeaf",
"version" : "5.2.1"
}
}
],
"version" : 2
}
Description
As part of our app launch sequence we use Firestore in order to fetch some app configuration/settings, followed by some other API calls to our backend (fetch user information etc.)
Many times the app crashes instantly after tapping the app icon.
While debugging it, some of the crashes just stops on
UIApplicaiotnMain(), and others stops on a random Firebase SDK code (see screenshot below) and the thread that crashed is related to Firebase.Since all the crashes are
EXC_BAD_ACCESS, and it inconsistently I suspect it a race data issue. Recently I enabled Thread Sanitizer on Diagnostics settings in order to audit threading issues in the code (see output below).The issue reproduce using Firebase SDK versions 9.3.0, 9.4.*, 9.5.0, 9.6.0 and 10.0.0.
Exception
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: UNKNOWN_0xD at 0x0000000000000000
Reproducing the issue
Firebase SDK Version
10.0.0
Xcode Version
13.3.1
Installation Method
Swift Package Manager
Firebase Product(s)
Analytics, Authentication, Crashlytics, DynamicLinks, Firestore, Performance
Targeted Platforms
iOS
Relevant Log Output
ThreadSanitizer output ================== WARNING: ThreadSanitizer: data race (pid=98911) Read of size 1 at 0x7b2000058060 by thread T12: #0 firebase::firestore::credentials::FirebaseAuthCredentialsProvider::GetToken(std::__1::function<void (firebase::firestore::util::StatusOr<firebase::firestore::credentials::AuthToken>)>) <null>:2 (YSelfie:x86_64+0x100dbc2a7) #1 firebase::firestore::remote::Stream::RequestCredentials() <null>:2 (YSelfie:x86_64+0x100ecb758) #2 firebase::firestore::remote::Stream::Start() <null>:2 (YSelfie:x86_64+0x100ecb165) #3 firebase::firestore::remote::RemoteStore::StartWatchStream() <null>:2 (YSelfie:x86_64+0x100eb925f) #4 firebase::firestore::remote::RemoteStore::EnableNetwork() <null>:2 (YSelfie:x86_64+0x100eb910d) #5 firebase::firestore::remote::RemoteStore::RestartNetwork() <null>:2 (YSelfie:x86_64+0x100ebd365) #6 firebase::firestore::remote::RemoteStore::HandleCredentialChange() <null>:2 (YSelfie:x86_64+0x100ebd3fc) #7 firebase::firestore::core::SyncEngine::HandleCredentialChange(firebase::firestore::credentials::User const&) <null>:2 (YSelfie:x86_64+0x100d8974b) #8 std::__1::__function::__func<firebase::firestore::core::FirestoreClient::Create(firebase::firestore::core::DatabaseInfo const&, firebase::firestore::api::Settings const&, std::__1::shared_ptr<firebase::firestore::credentials::CredentialsProvider<firebase::firestore::credentials::AuthToken, firebase::firestore::credentials::User> >, std::__1::shared_ptr<firebase::firestore::credentials::CredentialsProvider<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >, std::__1::shared_ptr<firebase::firestore::util::Executor>, std::__1::shared_ptr<firebase::firestore::util::AsyncQueue>, std::__1::unique_ptr<firebase::firestore::remote::FirebaseMetadataProvider, std::__1::default_delete<firebase::firestore::remote::FirebaseMetadataProvider> >)::$_3::operator()(firebase::firestore::credentials::User)::'lambda0'(), std::__1::allocator<firebase::firestore::core::FirestoreClient::Create(firebase::firestore::core::DatabaseInfo const&, firebase::firestore::api::Settings const&, std::__1::shared_ptr<firebase::firestore::credentials::CredentialsProvider<firebase::firestore::credentials::AuthToken, firebase::firestore::credentials::User> >, std::__1::shared_ptr<firebase::firestore::credentials::CredentialsProvider<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >, std::__1::shared_ptr<firebase::firestore::util::Executor>, std::__1::shared_ptr<firebase::firestore::util::AsyncQueue>, std::__1::unique_ptr<firebase::firestore::remote::FirebaseMetadataProvider, std::__1::default_delete<firebase::firestore::remote::FirebaseMetadataProvider> >)::$_3::operator()(firebase::firestore::credentials::User)::'lambda0'()>, void ()>::operator()() <null>:2 (YSelfie:x86_64+0x100d685f4) #9 firebase::firestore::util::AsyncQueue::ExecuteBlocking(std::__1::function<void ()> const&) <null>:2 (YSelfie:x86_64+0x100ed1f06) #10 std::__1::__function::__func<firebase::firestore::util::AsyncQueue::Wrap(std::__1::function<void ()> const&)::$_0, std::__1::allocator<firebase::firestore::util::AsyncQueue::Wrap(std::__1::function<void ()> const&)::$_0>, void ()>::operator()() <null>:2 (YSelfie:x86_64+0x100ed2d07) #11 firebase::firestore::util::Task::ExecuteAndRelease() <null>:2 (YSelfie:x86_64+0x100ee0a10) #12 firebase::firestore::util::ExecutorLibdispatch::InvokeAsync(void*) <null>:2 (YSelfie:x86_64+0x100ed61b5) #13 __tsan::dispatch_callback_wrap(void*) <null>:2 (libclang_rt.tsan_iossim_dynamic.dylib:x86_64+0x77d95) #14 _dispatch_client_callout <null>:2 (libdispatch.dylib:x86_64+0x4a5a) Previous write of size 1 at 0x7b2000058060 by main thread (mutexes: write M382659887898899168): #0 firebase::firestore::credentials::FirebaseAuthCredentialsProvider::GetToken(std::__1::function<void (firebase::firestore::util::StatusOr<firebase::firestore::credentials::AuthToken>)>) <null>:2 (YSelfie:x86_64+0x100dbc2f1) #1 invocation function for block in firebase::firestore::credentials::FirebaseAuthCredentialsProvider::GetToken(std::__1::function<void (firebase::firestore::util::StatusOr<firebase::firestore::credentials::AuthToken>)>) <null>:2 (YSelfie:x86_64+0x100dbc6d1) #2 __47-[FIRAuth getTokenForcingRefresh:withCallback:]_block_invoke_6 <null>:2 (YSelfie:x86_64+0x1005d6756) #3 __tsan::invoke_and_release_block(void*) <null>:2 (libclang_rt.tsan_iossim_dynamic.dylib:x86_64+0x7803b) #4 _dispatch_client_callout <null>:2 (libdispatch.dylib:x86_64+0x4a5a) #5 start_sim <null>:2 (dyld_sim:x86_64+0x1f20) Location is heap block of size 128 at 0x7b2000058000 allocated by main thread: #0 operator new(unsigned long) <null>:2 (libclang_rt.tsan_iossim_dynamic.dylib:x86_64+0x7bb3d) #1 -[FSTFirestoreComponent firestoreForDatabase:] <null>:2 (YSelfie:x86_64+0x100d14d25) #2 +[FIRFirestore firestoreForApp:database:] <null>:2 (YSelfie:x86_64+0x100cf8186) #3 +[FIRFirestore firestore] <null>:2 (YSelfie:x86_64+0x100cf7ed4) #4 specialized InitialNetworkService.__allocating_init(resourcesManager:contentProvider:) InitialNetworkService.swift:31 (YSelfie:x86_64+0x10007c5a9) #5 AppContext.sessionManager.getter AppContext.swift:40 (YSelfie:x86_64+0x100078df0) #6 AppContext.startApp(from:) AppContext.swift:164 (YSelfie:x86_64+0x10007ae30) #7 AppContext.startApp(with:) AppContext.swift:150 (YSelfie:x86_64+0x10007a980) #8 AppContext.application(_:didFinishLaunchingWithOptions:) AppContext.swift:74 (YSelfie:x86_64+0x1000795e6) #9 @objc AppDelegate.application(_:didFinishLaunchingWithOptions:) <compiler-generated>:20 (YSelfie:x86_64+0x10024b47c) #10 -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] <null>:2 (UIKitCore:x86_64+0xcd6846) #11 start_sim <null>:2 (dyld_sim:x86_64+0x1f20) Mutex M382659887898899168 is already destroyed. Thread T12 (tid=935625, running) is a GCD worker thread SUMMARY: ThreadSanitizer: data race (YSelfie:x86_64+0x100dbc2a7) in firebase::firestore::credentials::FirebaseAuthCredentialsProvider::GetToken(std::__1::function<void (firebase::firestore::util::StatusOr<firebase::firestore::credentials::AuthToken>)>)+0x137 ================== ThreadSanitizer report breakpoint hit. Use 'thread info -s' to get extended information about the report. ================== WARNING: ThreadSanitizer: data race (pid=98911) Write of size 4 at 0x7b24000132d8 by main thread (mutexes: write M382659887898899168): #0 invocation function for block in firebase::firestore::credentials::FirebaseAuthCredentialsProvider::FirebaseAuthCredentialsProvider(FIRApp*, id<FIRAuthInterop>) <null>:2 (YSelfie:x86_64+0x100dbbbc7) #1 -[__NSObserver _doit:] <null>:2 (Foundation:x86_64+0xd75c0) #2 __tsan::invoke_and_release_block(void*) <null>:2 (libclang_rt.tsan_iossim_dynamic.dylib:x86_64+0x7803b) #3 _dispatch_client_callout <null>:2 (libdispatch.dylib:x86_64+0x4a5a) #4 start_sim <null>:2 (dyld_sim:x86_64+0x1f20) Previous read of size 4 at 0x7b24000132d8 by thread T12: #0 firebase::firestore::credentials::FirebaseAuthCredentialsProvider::GetToken(std::__1::function<void (firebase::firestore::util::StatusOr<firebase::firestore::credentials::AuthToken>)>) <null>:2 (YSelfie:x86_64+0x100dbc1ce) #1 firebase::firestore::remote::Stream::RequestCredentials() <null>:2 (YSelfie:x86_64+0x100ecb758) #2 firebase::firestore::remote::Stream::Start() <null>:2 (YSelfie:x86_64+0x100ecb165) #3 firebase::firestore::remote::RemoteStore::StartWatchStream() <null>:2 (YSelfie:x86_64+0x100eb925f) #4 firebase::firestore::remote::RemoteStore::EnableNetwork() <null>:2 (YSelfie:x86_64+0x100eb910d) #5 firebase::firestore::remote::RemoteStore::RestartNetwork() <null>:2 (YSelfie:x86_64+0x100ebd365) #6 firebase::firestore::remote::RemoteStore::HandleCredentialChange() <null>:2 (YSelfie:x86_64+0x100ebd3fc) #7 firebase::firestore::core::SyncEngine::HandleCredentialChange(firebase::firestore::credentials::User const&) <null>:2 (YSelfie:x86_64+0x100d8974b) #8 std::__1::__function::__func<firebase::firestore::core::FirestoreClient::Create(firebase::firestore::core::DatabaseInfo const&, firebase::firestore::api::Settings const&, std::__1::shared_ptr<firebase::firestore::credentials::CredentialsProvider<firebase::firestore::credentials::AuthToken, firebase::firestore::credentials::User> >, std::__1::shared_ptr<firebase::firestore::credentials::CredentialsProvider<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >, std::__1::shared_ptr<firebase::firestore::util::Executor>, std::__1::shared_ptr<firebase::firestore::util::AsyncQueue>, std::__1::unique_ptr<firebase::firestore::remote::FirebaseMetadataProvider, std::__1::default_delete<firebase::firestore::remote::FirebaseMetadataProvider> >)::$_3::operator()(firebase::firestore::credentials::User)::'lambda0'(), std::__1::allocator<firebase::firestore::core::FirestoreClient::Create(firebase::firestore::core::DatabaseInfo const&, firebase::firestore::api::Settings const&, std::__1::shared_ptr<firebase::firestore::credentials::CredentialsProvider<firebase::firestore::credentials::AuthToken, firebase::firestore::credentials::User> >, std::__1::shared_ptr<firebase::firestore::credentials::CredentialsProvider<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >, std::__1::shared_ptr<firebase::firestore::util::Executor>, std::__1::shared_ptr<firebase::firestore::util::AsyncQueue>, std::__1::unique_ptr<firebase::firestore::remote::FirebaseMetadataProvider, std::__1::default_delete<firebase::firestore::remote::FirebaseMetadataProvider> >)::$_3::operator()(firebase::firestore::credentials::User)::'lambda0'()>, void ()>::operator()() <null>:2 (YSelfie:x86_64+0x100d685f4) #9 firebase::firestore::util::AsyncQueue::ExecuteBlocking(std::__1::function<void ()> const&) <null>:2 (YSelfie:x86_64+0x100ed1f06) #10 std::__1::__function::__func<firebase::firestore::util::AsyncQueue::Wrap(std::__1::function<void ()> const&)::$_0, std::__1::allocator<firebase::firestore::util::AsyncQueue::Wrap(std::__1::function<void ()> const&)::$_0>, void ()>::operator()() <null>:2 (YSelfie:x86_64+0x100ed2d07) #11 firebase::firestore::util::Task::ExecuteAndRelease() <null>:2 (YSelfie:x86_64+0x100ee0a10) #12 firebase::firestore::util::ExecutorLibdispatch::InvokeAsync(void*) <null>:2 (YSelfie:x86_64+0x100ed61b5) #13 __tsan::dispatch_callback_wrap(void*) <null>:2 (libclang_rt.tsan_iossim_dynamic.dylib:x86_64+0x77d95) #14 _dispatch_client_callout <null>:2 (libdispatch.dylib:x86_64+0x4a5a) Location is heap block of size 144 at 0x7b2400013290 allocated by main thread: #0 operator new(unsigned long) <null>:2 (libclang_rt.tsan_iossim_dynamic.dylib:x86_64+0x7bb3d) #1 firebase::firestore::credentials::FirebaseAuthCredentialsProvider::FirebaseAuthCredentialsProvider(FIRApp*, id<FIRAuthInterop>) <null>:2 (YSelfie:x86_64+0x100dbb5e8) #2 firebase::firestore::credentials::FirebaseAuthCredentialsProvider::FirebaseAuthCredentialsProvider(FIRApp*, id<FIRAuthInterop>) <null>:2 (YSelfie:x86_64+0x100dbbf6d) #3 -[FSTFirestoreComponent firestoreForDatabase:] <null>:2 (YSelfie:x86_64+0x100d14d6b) #4 +[FIRFirestore firestoreForApp:database:] <null>:2 (YSelfie:x86_64+0x100cf8186) #5 +[FIRFirestore firestore] <null>:2 (YSelfie:x86_64+0x100cf7ed4) #6 specialized InitialNetworkService.__allocating_init(resourcesManager:contentProvider:) InitialNetworkService.swift:31 (YSelfie:x86_64+0x10007c5a9) #7 AppContext.sessionManager.getter AppContext.swift:40 (YSelfie:x86_64+0x100078df0) #8 AppContext.startApp(from:) AppContext.swift:164 (YSelfie:x86_64+0x10007ae30) #9 AppContext.startApp(with:) AppContext.swift:150 (YSelfie:x86_64+0x10007a980) #10 AppContext.application(_:didFinishLaunchingWithOptions:) AppContext.swift:74 (YSelfie:x86_64+0x1000795e6) #11 @objc AppDelegate.application(_:didFinishLaunchingWithOptions:) <compiler-generated>:20 (YSelfie:x86_64+0x10024b47c) #12 -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] <null>:2 (UIKitCore:x86_64+0xcd6846) #13 start_sim <null>:2 (dyld_sim:x86_64+0x1f20) Mutex M382659887898899168 is already destroyed. Thread T12 (tid=935625, running) is a GCD worker thread SUMMARY: ThreadSanitizer: data race (YSelfie:x86_64+0x100dbbbc7) in invocation function for block in firebase::firestore::credentials::FirebaseAuthCredentialsProvider::FirebaseAuthCredentialsProvider(FIRApp*, id<FIRAuthInterop>)+0x1c1 ================== ThreadSanitizer report breakpoint hit. Use 'thread info -s' to get extended information about the report.If using Swift Package Manager, the project's Package.resolved
Expand
Package.resolvedsnippet{ "pins" : [ { "identity" : "abseil-cpp-swiftpm", "kind" : "remoteSourceControl", "location" : "https://github.com/firebase/abseil-cpp-SwiftPM.git", "state" : { "revision" : "d302de612e3d57c6f4afaf087da18fba8eac72a7", "version" : "0.20220203.1" } }, { "identity" : "alamofire", "kind" : "remoteSourceControl", "location" : "https://github.com/Alamofire/Alamofire.git", "state" : { "revision" : "f82c23a8a7ef8dc1a49a8bfc6a96883e79121864", "version" : "5.5.0" } }, { "identity" : "appauth-ios", "kind" : "remoteSourceControl", "location" : "https://github.com/openid/AppAuth-iOS.git", "state" : { "revision" : "3d36a58a2b736f7bc499453e996a704929b25080", "version" : "1.6.0" } }, { "identity" : "boringssl-swiftpm", "kind" : "remoteSourceControl", "location" : "https://github.com/firebase/boringssl-SwiftPM.git", "state" : { "revision" : "79db6516894a932d0ddaff3b05b9da1e4f6c4069", "version" : "0.9.0" } }, { "identity" : "braintree-ios-drop-in", "kind" : "remoteSourceControl", "location" : "https://github.com/braintree/braintree-ios-drop-in", "state" : { "revision" : "d4ee6799c70ab70545054acf60475315c5fd6196", "version" : "9.5.0" } }, { "identity" : "braintree_ios", "kind" : "remoteSourceControl", "location" : "https://github.com/braintree/braintree_ios", "state" : { "revision" : "5013d5bc515ddbe8b50465f10fd7545430d7c86f", "version" : "5.12.0" } }, { "identity" : "eventsource", "kind" : "remoteSourceControl", "location" : "https://github.com/inaka/EventSource", "state" : { "branch" : "master", "revision" : "78934b361891c7d0fa3d399d128e959f0c94d267" } }, { "identity" : "facebook-ios-sdk", "kind" : "remoteSourceControl", "location" : "https://github.com/facebook/facebook-ios-sdk", "state" : { "revision" : "c19607d535864533523d1f437c84035e5fb101cf", "version" : "14.1.0" } }, { "identity" : "firebase-ios-sdk", "kind" : "remoteSourceControl", "location" : "https://github.com/firebase/firebase-ios-sdk.git", "state" : { "revision" : "5c4893c55f9d6114e2bb7c691d7ffd81208ac713", "version" : "10.0.0" } }, { "identity" : "fittedsheets", "kind" : "remoteSourceControl", "location" : "https://github.com/gordontucker/FittedSheets", "state" : { "revision" : "65f9c93718f96c6de234d38c9976e67a0d9e2b28", "version" : "2.4.2" } }, { "identity" : "googleappmeasurement", "kind" : "remoteSourceControl", "location" : "https://github.com/google/GoogleAppMeasurement.git", "state" : { "revision" : "e3dd02f390cae79a7073b46dfb0cb6b60c48401b", "version" : "10.0.0" } }, { "identity" : "googledatatransport", "kind" : "remoteSourceControl", "location" : "https://github.com/google/GoogleDataTransport.git", "state" : { "revision" : "5056b15c5acbb90cd214fe4d6138bdf5a740e5a8", "version" : "9.2.0" } }, { "identity" : "googlesignin-ios", "kind" : "remoteSourceControl", "location" : "https://github.com/google/GoogleSignIn-iOS", "state" : { "revision" : "9c9b36af86a4dd3da16048a36cf37351e63ccfe1", "version" : "6.2.4" } }, { "identity" : "googleutilities", "kind" : "remoteSourceControl", "location" : "https://github.com/google/GoogleUtilities.git", "state" : { "revision" : "68ea347bdb1a69e2d2ae2e25cd085b6ef92f64cb", "version" : "7.9.0" } }, { "identity" : "grpc-ios", "kind" : "remoteSourceControl", "location" : "https://github.com/grpc/grpc-ios.git", "state" : { "revision" : "abd2d5a4347efa0454606a788678a5d8ec223738", "version" : "1.44.0-grpc" } }, { "identity" : "gtm-session-fetcher", "kind" : "remoteSourceControl", "location" : "https://github.com/google/gtm-session-fetcher.git", "state" : { "revision" : "d4289da23e978f37c344ea6a386e5546e2466294", "version" : "2.1.0" } }, { "identity" : "gtmappauth", "kind" : "remoteSourceControl", "location" : "https://github.com/google/GTMAppAuth.git", "state" : { "revision" : "6dee0cde8a1b223737a5159e55e6b4ec16bbbdd9", "version" : "1.3.1" } }, { "identity" : "haishinkit.swift", "kind" : "remoteSourceControl", "location" : "https://github.com/shogo4405/HaishinKit.swift", "state" : { "revision" : "8fc3f3b1a52778dc42ebe64b26e67b4a6b9027e0", "version" : "1.2.3" } }, { "identity" : "keychainaccess", "kind" : "remoteSourceControl", "location" : "https://github.com/kishikawakatsumi/KeychainAccess.git", "state" : { "revision" : "84e546727d66f1adc5439debad16270d0fdd04e7", "version" : "4.2.2" } }, { "identity" : "leveldb", "kind" : "remoteSourceControl", "location" : "https://github.com/firebase/leveldb.git", "state" : { "revision" : "0706abcc6b0bd9cedfbb015ba840e4a780b5159b", "version" : "1.22.2" } }, { "identity" : "logboard", "kind" : "remoteSourceControl", "location" : "https://github.com/shogo4405/Logboard.git", "state" : { "revision" : "8cc7656b07e4d327fae42e1320e2e48b8868e3f6", "version" : "2.2.2" } }, { "identity" : "moya", "kind" : "remoteSourceControl", "location" : "https://github.com/Moya/Moya.git", "state" : { "revision" : "9b906860e3c3c09032879465c471e6375829593f", "version" : "15.0.0" } }, { "identity" : "nanopb", "kind" : "remoteSourceControl", "location" : "https://github.com/firebase/nanopb.git", "state" : { "revision" : "819d0a2173aff699fb8c364b6fb906f7cdb1a692", "version" : "2.30909.0" } }, { "identity" : "nuke", "kind" : "remoteSourceControl", "location" : "https://github.com/kean/Nuke.git", "state" : { "revision" : "a002b7fd786f2df2ed4333fe73a9727499fd9d97", "version" : "10.11.2" } }, { "identity" : "paypalcheckout-ios", "kind" : "remoteSourceControl", "location" : "https://github.com/paypal/paypalcheckout-ios", "state" : { "revision" : "122a8a67f30b55768321e3cb3d30ce6792585063", "version" : "0.100.0" } }, { "identity" : "promises", "kind" : "remoteSourceControl", "location" : "https://github.com/google/promises.git", "state" : { "revision" : "46c1e6b5ac09d8f82c991061c659f67e573d425d", "version" : "2.1.0" } }, { "identity" : "prynttrimmerview", "kind" : "remoteSourceControl", "location" : "https://github.com/HHK1/PryntTrimmerView", "state" : { "revision" : "ac1b60a22c7e6a6514de7a66d2f3d5b537c956d5", "version" : "4.0.2" } }, { "identity" : "reactiveswift", "kind" : "remoteSourceControl", "location" : "https://github.com/ReactiveCocoa/ReactiveSwift.git", "state" : { "revision" : "c43bae3dac73fdd3cb906bd5a1914686ca71ed3c", "version" : "6.7.0" } }, { "identity" : "rxswift", "kind" : "remoteSourceControl", "location" : "https://github.com/ReactiveX/RxSwift.git", "state" : { "revision" : "b4307ba0b6425c0ba4178e138799946c3da594f8", "version" : "6.5.0" } }, { "identity" : "skeletonview", "kind" : "remoteSourceControl", "location" : "https://github.com/Juanpe/SkeletonView", "state" : { "revision" : "ca7d2edceee613e47b7857029fc82de633460e6f", "version" : "1.30.2" } }, { "identity" : "stevia", "kind" : "remoteSourceControl", "location" : "https://github.com/freshOS/Stevia", "state" : { "revision" : "87dd17a86240f16788239a78dd8be11c4b013150", "version" : "4.8.0" } }, { "identity" : "swift-protobuf", "kind" : "remoteSourceControl", "location" : "https://github.com/apple/swift-protobuf.git", "state" : { "revision" : "e1499bc69b9040b29184f7f2996f7bab467c1639", "version" : "1.19.0" } }, { "identity" : "swiftdate", "kind" : "remoteSourceControl", "location" : "https://github.com/malcommac/SwiftDate.git", "state" : { "revision" : "6190d0cefff3013e77ed567e6b074f324e5c5bf5", "version" : "6.3.1" } }, { "identity" : "ypimagepicker", "kind" : "remoteSourceControl", "location" : "https://github.com/Yummypets/YPImagePicker.git", "state" : { "revision" : "4dbae7a1f69db3d65c47f4106d0ca09f678edeaf", "version" : "5.2.1" } } ], "version" : 2 }If using CocoaPods, the project's Podfile.lock
Expand
Podfile.locksnippetReplace this line with the contents of your Podfile.lock!