firebase / firebase-ios-sdk

Firebase SDK for Apple App Development
https://firebase.google.com
Apache License 2.0
5.65k stars 1.48k forks source link

FirebaseApp.configure is hanging on SDK 10.24.0 and 10.25.0 #12913

Closed jonameson closed 4 months ago

jonameson commented 5 months ago

Description

We released the app with 10.24.0 and noticed a large number of crash reports caused by FirebaseApp.configure causing a hang. Not sure how to reproduce. It is random on device that this happens.

Reproducing the issue

No response

Firebase SDK Version

10.25.0

Xcode Version

15.2

Installation Method

Swift Package Manager

Firebase Product(s)

AB Testing, Analytics, Authentication, Crashlytics, DynamicLinks, Firestore, Functions, In-App Messaging, Performance, Remote Config, Storage

Targeted Platforms

iOS

Relevant Log Output

#0  (null) in _dispatch_sync_f ()
#1  0x00000001032fddb0 in -[FIRCLSRolloutsPersistenceManager updateRolloutsStateToPersistenceWithRollouts:reportID:] at /Users/jona/Library/Developer/Xcode/DerivedData/flipaclip-behvdimhwqhunhbioxirkxfgelqm/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/Crashlytics/Controllers/FIRCLSRolloutsPersistenceManager.m:60
#2  0x00000001033452dc in CrashlyticsRemoteConfigManager.updateRolloutsState(rolloutsState:reportID:) at /Users/jona/Library/Developer/Xcode/DerivedData/flipaclip-behvdimhwqhunhbioxirkxfgelqm/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/Crashlytics/Rollouts/CrashlyticsRemoteConfigManager.swift:56
#3  (null) in @objc CrashlyticsRemoteConfigManager.updateRolloutsState(rolloutsState:reportID:) ()
#4  0x0000000103300be8 in -[FIRCrashlytics rolloutsStateDidChange:] at /Users/jona/Library/Developer/Xcode/DerivedData/flipaclip-behvdimhwqhunhbioxirkxfgelqm/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/Crashlytics/FIRCrashlytics.m:448
#5  0x00000001032de638 in __52-[FIRRemoteConfig addRemoteConfigInteropSubscriber:]_block_invoke at /Users/jona/Library/Developer/Xcode/DerivedData/flipaclip-behvdimhwqhunhbioxirkxfgelqm/SourcePackages/checkouts/firebase-ios-sdk/FirebaseRemoteConfig/Sources/FIRRemoteConfig.m:645
#6  (null) in __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ ()
#7  (null) in ___CFXRegistrationPost_block_invoke ()
#8  (null) in _CFXRegistrationPost ()
#9  (null) in _CFXNotificationPost ()
#10 (null) in -[NSNotificationCenter postNotificationName:object:userInfo:] ()
#11 0x00000001032de720 in -[FIRRemoteConfig notifyRolloutsStateChange:versionNumber:] at /Users/jona/Library/Developer/Xcode/DerivedData/flipaclip-behvdimhwqhunhbioxirkxfgelqm/SourcePackages/checkouts/firebase-ios-sdk/FirebaseRemoteConfig/Sources/FIRRemoteConfig.m:665
#12 0x00000001032de598 in -[FIRRemoteConfig addRemoteConfigInteropSubscriber:] at /Users/jona/Library/Developer/Xcode/DerivedData/flipaclip-behvdimhwqhunhbioxirkxfgelqm/SourcePackages/checkouts/firebase-ios-sdk/FirebaseRemoteConfig/Sources/FIRRemoteConfig.m:651
#13 0x00000001032df348 in -[FIRRemoteConfigComponent registerRolloutsStateSubscriber:for:] at /Users/jona/Library/Developer/Xcode/DerivedData/flipaclip-behvdimhwqhunhbioxirkxfgelqm/SourcePackages/checkouts/firebase-ios-sdk/FirebaseRemoteConfig/Sources/FIRRemoteConfigComponent.m:152
#14 0x00000001032ffcc8 in -[FIRCrashlytics initWithApp:appInfo:installations:analytics:sessions:remoteConfig:] at /Users/jona/Library/Developer/Xcode/DerivedData/flipaclip-behvdimhwqhunhbioxirkxfgelqm/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/Crashlytics/FIRCrashlytics.m:218
#15 0x0000000103300178 in __38+[FIRCrashlytics componentsToRegister]_block_invoke at /Users/jona/Library/Developer/Xcode/DerivedData/flipaclip-behvdimhwqhunhbioxirkxfgelqm/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/Crashlytics/FIRCrashlytics.m:251
#16 0x00000001031e2574 in -[FIRComponentContainer instantiateInstanceForProtocol:withBlock:] at /Users/jona/Library/Developer/Xcode/DerivedData/flipaclip-behvdimhwqhunhbioxirkxfgelqm/SourcePackages/checkouts/firebase-ios-sdk/FirebaseCore/Sources/FIRComponentContainer.m:160
#17 0x00000001031e26f0 in -[FIRComponentContainer instanceForProtocol:] at /Users/jona/Library/Developer/Xcode/DerivedData/flipaclip-behvdimhwqhunhbioxirkxfgelqm/SourcePackages/checkouts/firebase-ios-sdk/FirebaseCore/Sources/FIRComponentContainer.m:199
#18 0x00000001031e2480 in -[FIRComponentContainer instantiateEagerComponents] at /Users/jona/Library/Developer/Xcode/DerivedData/flipaclip-behvdimhwqhunhbioxirkxfgelqm/SourcePackages/checkouts/firebase-ios-sdk/FirebaseCore/Sources/FIRComponentContainer.m:137
#19 0x00000001031df4dc in +[FIRApp configureWithName:options:] at /Users/jona/Library/Developer/Xcode/DerivedData/flipaclip-behvdimhwqhunhbioxirkxfgelqm/SourcePackages/checkouts/firebase-ios-sdk/FirebaseCore/Sources/FIRApp.m:199
#20 0x00000001031df18c in +[FIRApp configureWithOptions:] at /Users/jona/Library/Developer/Xcode/DerivedData/flipaclip-behvdimhwqhunhbioxirkxfgelqm/SourcePackages/checkouts/firebase-ios-sdk/FirebaseCore/Sources/FIRApp.m:132
#21 0x000000010329df7c in FirebaseServiceSdk.start() at /Users/jona/Developer/git/flipaclip-ios/flipaclip/Engagement/Sources/Engagement/data/firebase/FirebaseServiceSdk.swift:60
#22 (null) in protocol witness for ServiceSdk.start() in conformance FirebaseServiceSdk ()
#23 0x000000010329a194 in closure #1 in ServiceSdkManagerImpl.start() at /Users/jona/Developer/git/flipaclip-ios/flipaclip/Engagement/Sources/Engagement/data/ServiceSdkManagerImpl.swift:43
#24 (null) in specialized Sequence.forEach(_:) ()
#25 0x000000010329a194 in ServiceSdkManagerImpl.start() at /Users/jona/Developer/git/flipaclip-ios/flipaclip/Engagement/Sources/Engagement/data/ServiceSdkManagerImpl.swift:42
#26 (null) in protocol witness for ServiceSdkManager.start() in conformance ServiceSdkManagerImpl ()
#27 0x00000001032b0cac in Container.initEngagementModule() at /Users/jona/Developer/git/flipaclip-ios/flipaclip/Engagement/Sources/Engagement/di/EngagementModule.swift:65
#28 0x0000000102ea0034 in specialized ColdBootAppInitUseCaseImpl.execute(completion:) at /Users/jona/Developer/git/flipaclip-ios/flipaclip/flipaclip/di/data/usecase/ColdBootAppInitUseCaseImpl.swift:33
#29 (null) in ColdBootAppInitUseCaseImpl.execute(completion:) ()
#30 (null) in protocol witness for ColdBootAppInitUseCase.execute(completion:) in conformance ColdBootAppInitUseCaseImpl ()
#31 0x000000010376d400 in StartupFlowRepositoryImpl.start() at /Users/jona/Developer/git/flipaclip-ios/flipaclip/FeatureStartup/Sources/FeatureStartup/data/StartupFlowRepositoryImpl.swift:67
#32 0x000000010379c030 in StartupCoordinator.start() at /Users/jona/Developer/git/flipaclip-ios/flipaclip/FeatureStartup/Sources/FeatureStartup/presentation/coordinator/StartupCoordinator.swift:90
#33 0x0000000103135d50 in Coordinator.startChild(coordinator:) at /Users/jona/Developer/git/flipaclip-ios/flipaclip/CoreUI/Sources/CoreUI/presentation/coordinator/Coordinator.swift:48
#34 0x0000000102f96604 in AppCoordinator.startStartupFlow() at /Users/jona/Developer/git/flipaclip-ios/flipaclip/flipaclip/Coordinators/AppCoordinator.swift:66
#35 0x0000000102ed9718 in AppCoordinator.start() at /Users/jona/Developer/git/flipaclip-ios/flipaclip/flipaclip/Coordinators/AppCoordinator.swift:25
#36 0x0000000102ed9718 in AppDelegate.application(_:didFinishLaunchingWithOptions:) at /Users/jona/Developer/git/flipaclip-ios/flipaclip/flipaclip/Application/AppDelegate.swift:46
#37 (null) in @objc AppDelegate.application(_:didFinishLaunchingWithOptions:) ()
#38 (null) in -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] ()
#39 (null) in -[UIApplication _callInitializationDelegatesWithActions:forCanvas:payload:fromOriginatingProcess:] ()
#40 (null) in -[UIApplication _runWithMainScene:transitionContext:completion:] ()
#41 (null) in -[_UISceneLifecycleMultiplexer completeApplicationLaunchWithFBSScene:transitionContext:] ()
#42 (null) in _UIScenePerformActionsWithLifecycleActionMask ()
#43 (null) in __101-[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:]_block_invoke ()
#44 (null) in -[_UISceneLifecycleMultiplexer _performBlock:withApplicationOfDeactivationReasons:fromReasons:] ()
#45 (null) in -[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:] ()
#46 (null) in -[_UISceneLifecycleMultiplexer uiScene:transitionedFromState:withTransitionContext:] ()
#47 (null) in __186-[_UIWindowSceneFBSSceneTransitionContextDrivenLifecycleSettingsDiffAction _performActionsForUIScene:withUpdatedFBSScene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:]_block... ()
#48 (null) in +[BSAnimationSettings(UIKit) tryAnimatingWithSettings:fromCurrentState:actions:completion:] ()
#49 (null) in _UISceneSettingsDiffActionPerformChangesWithTransitionContextAndCompletion ()
#50 (null) in -[_UIWindowSceneFBSSceneTransitionContextDrivenLifecycleSettingsDiffAction _performActionsForUIScene:withUpdatedFBSScene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:] ()
#51 (null) in __64-[UIScene scene:didUpdateWithDiff:transitionContext:completion:]_block_invoke.214 ()
#52 (null) in -[UIScene _emitSceneSettingsUpdateResponseForCompletion:afterSceneUpdateWork:] ()
#53 (null) in -[UIScene scene:didUpdateWithDiff:transitionContext:completion:] ()
#54 (null) in -[UIApplication workspace:didCreateScene:withTransitionContext:completion:] ()
#55 (null) in -[UIApplicationSceneClientAgent scene:didInitializeWithEvent:completion:] ()
#56 (null) in -[FBSScene _callOutQueue_agent_didCreateWithTransitionContext:completion:] ()
#57 (null) in __92-[FBSWorkspaceScenesClient createSceneWithIdentity:parameters:transitionContext:completion:]_block_invoke.78 ()
#58 (null) in -[FBSWorkspace _calloutQueue_executeCalloutFromSource:withBlock:] ()
#59 (null) in __92-[FBSWorkspaceScenesClient createSceneWithIdentity:parameters:transitionContext:completion:]_block_invoke ()
#60 (null) in _dispatch_client_callout ()
#61 (null) in _dispatch_block_invoke_direct ()
#62 (null) in __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ ()
#63 (null) in -[FBSSerialQueue _targetQueue_performNextIfPossible] ()
#64 (null) in -[FBSSerialQueue _performNextFromRunLoopSource] ()
#65 (null) in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ ()
#66 (null) in __CFRunLoopDoSource0 ()
#67 (null) in __CFRunLoopDoSources0 ()
#68 (null) in __CFRunLoopRun ()
#69 (null) in CFRunLoopRunSpecific ()
#70 (null) in GSEventRunModal ()
#71 (null) in -[UIApplication _run] ()
#72 (null) in UIApplicationMain ()
#73 0x0000000102eda128 in main at /Users/jona/Developer/git/flipaclip-ios/flipaclip/flipaclip/Application/AppDelegate.swift:24
#74 (null) in start ()

If using Swift Package Manager, the project's Package.resolved

Expand Package.resolved snippet
```json { "pins" : [ { "identity" : "abseil-cpp-binary", "kind" : "remoteSourceControl", "location" : "https://github.com/google/abseil-cpp-binary.git", "state" : { "revision" : "748c7837511d0e6a507737353af268484e1745e2", "version" : "1.2024011601.1" } }, { "identity" : "alamofire", "kind" : "remoteSourceControl", "location" : "https://github.com/Alamofire/Alamofire.git", "state" : { "revision" : "723fa5a6c65812aec4a0d7cc432ee198883b6e00", "version" : "5.9.0" } }, { "identity" : "app-check", "kind" : "remoteSourceControl", "location" : "https://github.com/google/app-check.git", "state" : { "revision" : "7d2688de038d5484866d835acb47b379722d610e", "version" : "10.19.0" } }, { "identity" : "appauth-ios", "kind" : "remoteSourceControl", "location" : "https://github.com/openid/AppAuth-iOS.git", "state" : { "revision" : "71cde449f13d453227e687458144bde372d30fc7", "version" : "1.6.2" } }, { "identity" : "clevertap-ios-sdk", "kind" : "remoteSourceControl", "location" : "https://github.com/CleverTap/clevertap-ios-sdk", "state" : { "revision" : "4326cc44d928b062a04ec770e20c318cc2699076", "version" : "6.2.1" } }, { "identity" : "facebook-ios-sdk", "kind" : "remoteSourceControl", "location" : "https://github.com/facebook/facebook-ios-sdk", "state" : { "revision" : "3fe31c168903759de1c5752d12856c5c437c6862", "version" : "16.3.1" } }, { "identity" : "factory", "kind" : "remoteSourceControl", "location" : "https://github.com/hmlongco/Factory", "state" : { "revision" : "587995f7d5cc667951d635fbf6b4252324ba0439", "version" : "2.3.2" } }, { "identity" : "firebase-ios-sdk", "kind" : "remoteSourceControl", "location" : "https://github.com/firebase/firebase-ios-sdk.git", "state" : { "revision" : "97940381e57703c07f31a8058d8f39ec53b7c272", "version" : "10.25.0" } }, { "identity" : "flanimatedimage", "kind" : "remoteSourceControl", "location" : "https://github.com/Flipboard/FLAnimatedImage", "state" : { "revision" : "d4f07b6f164d53c1212c3e54d6460738b1981e9f", "version" : "1.0.17" } }, { "identity" : "fmdb", "kind" : "remoteSourceControl", "location" : "https://github.com/ccgus/fmdb", "state" : { "revision" : "61e51fde7f7aab6554f30ab061cc588b28a97d04", "version" : "2.7.7" } }, { "identity" : "google-api-objectivec-client-for-rest", "kind" : "remoteSourceControl", "location" : "https://github.com/google/google-api-objectivec-client-for-rest", "state" : { "revision" : "260501c0425e95e038c65436436161266bf548e9", "version" : "3.0.0" } }, { "identity" : "googleappmeasurement", "kind" : "remoteSourceControl", "location" : "https://github.com/google/GoogleAppMeasurement.git", "state" : { "revision" : "16244d177c4e989f87b25e9db1012b382cfedc55", "version" : "10.25.0" } }, { "identity" : "googledatatransport", "kind" : "remoteSourceControl", "location" : "https://github.com/google/GoogleDataTransport.git", "state" : { "revision" : "a732a4b47f59e4f725a2ea10f0c77e93a7131117", "version" : "9.3.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" : "bc27fad73504f3d4af235de451f02ee22586ebd3", "version" : "7.12.1" } }, { "identity" : "grpc-binary", "kind" : "remoteSourceControl", "location" : "https://github.com/google/grpc-binary.git", "state" : { "revision" : "e9fad491d0673bdda7063a0341fb6b47a30c5359", "version" : "1.62.2" } }, { "identity" : "gtm-session-fetcher", "kind" : "remoteSourceControl", "location" : "https://github.com/google/gtm-session-fetcher.git", "state" : { "revision" : "5ccda3981422a84186387dbb763ba739178b529c", "version" : "2.3.0" } }, { "identity" : "gtmappauth", "kind" : "remoteSourceControl", "location" : "https://github.com/google/GTMAppAuth.git", "state" : { "revision" : "6dee0cde8a1b223737a5159e55e6b4ec16bbbdd9", "version" : "1.3.1" } }, { "identity" : "interop-ios-for-google-sdks", "kind" : "remoteSourceControl", "location" : "https://github.com/google/interop-ios-for-google-sdks.git", "state" : { "revision" : "2d12673670417654f08f5f90fdd62926dc3a2648", "version" : "100.0.0" } }, { "identity" : "ios_sdk", "kind" : "remoteSourceControl", "location" : "https://github.com/adjust/ios_sdk", "state" : { "revision" : "2fd82b11e329e9c8357eaa77e28799ca2d629ab5", "version" : "4.38.2" } }, { "identity" : "iqkeyboardmanager", "kind" : "remoteSourceControl", "location" : "https://github.com/hackiftekhar/IQKeyboardManager", "state" : { "revision" : "aa656e1f0d95f0154622f453599318602848be3b", "version" : "7.0.1" } }, { "identity" : "leanplum-ios-sdk", "kind" : "remoteSourceControl", "location" : "https://github.com/Leanplum/Leanplum-iOS-SDK", "state" : { "revision" : "ef892ed5c50ebad476bf600ce4c06ec557c4782d", "version" : "6.4.2" } }, { "identity" : "leveldb", "kind" : "remoteSourceControl", "location" : "https://github.com/firebase/leveldb.git", "state" : { "revision" : "0706abcc6b0bd9cedfbb015ba840e4a780b5159b", "version" : "1.22.2" } }, { "identity" : "lottie-spm", "kind" : "remoteSourceControl", "location" : "https://github.com/airbnb/lottie-spm.git", "state" : { "revision" : "3bd43e12d6fb54654366a61f7cfaca787318b8ce", "version" : "4.4.1" } }, { "identity" : "mbprogresshud", "kind" : "remoteSourceControl", "location" : "https://github.com/jdg/MBProgressHUD.git", "state" : { "revision" : "bca42b801100b2b3a4eda0ba8dd33d858c780b0d", "version" : "1.2.0" } }, { "identity" : "nanopb", "kind" : "remoteSourceControl", "location" : "https://github.com/firebase/nanopb.git", "state" : { "revision" : "819d0a2173aff699fb8c364b6fb906f7cdb1a692", "version" : "2.30909.0" } }, { "identity" : "observable", "kind" : "remoteSourceControl", "location" : "https://github.com/roberthein/Observable", "state" : { "revision" : "c789e973131a4c2aba2a575345a91bcc06eef38d", "version" : "2.2.0" } }, { "identity" : "otpublishersheadlesssdk", "kind" : "remoteSourceControl", "location" : "https://github.com/Zentrust/OTPublishersHeadlessSDK", "state" : { "revision" : "98957a36b9afb5371bb8b9151d57943557d9d373", "version" : "202404.1.0" } }, { "identity" : "promises", "kind" : "remoteSourceControl", "location" : "https://github.com/google/promises.git", "state" : { "revision" : "e70e889c0196c76d22759eb50d6a0270ca9f1d9e", "version" : "2.3.1" } }, { "identity" : "purchasely-ios", "kind" : "remoteSourceControl", "location" : "https://github.com/Purchasely/Purchasely-iOS", "state" : { "revision" : "f5c72bca19158f46b148412efa83c0ae449a43fd", "version" : "4.3.5" } }, { "identity" : "rxdatasources", "kind" : "remoteSourceControl", "location" : "https://github.com/RxSwiftCommunity/RxDataSources", "state" : { "revision" : "90c29b48b628479097fe775ed1966d75ac374518", "version" : "5.0.2" } }, { "identity" : "rxswift", "kind" : "remoteSourceControl", "location" : "https://github.com/ReactiveX/RxSwift", "state" : { "revision" : "9dcaa4b333db437b0fbfaf453fad29069044a8b4", "version" : "6.6.0" } }, { "identity" : "sdwebimage", "kind" : "remoteSourceControl", "location" : "https://github.com/SDWebImage/SDWebImage.git", "state" : { "revision" : "1f06ef5007b6a580b3873ed2adee19e05d3b215a", "version" : "5.18.3" } }, { "identity" : "swift-protobuf", "kind" : "remoteSourceControl", "location" : "https://github.com/apple/swift-protobuf.git", "state" : { "revision" : "3c54ab05249f59f2c6641dd2920b8358ea9ed127", "version" : "1.24.0" } }, { "identity" : "swift-snapshot-testing", "kind" : "remoteSourceControl", "location" : "https://github.com/pointfreeco/swift-snapshot-testing", "state" : { "revision" : "5c3d2141fb0e55da411577012c917962b6b3517e", "version" : "1.8.0" } } ], "version" : 2 } ```

If using CocoaPods, the project's Podfile.lock

Expand Podfile.lock snippet
```yml Replace this line with the contents of your Podfile.lock! ```
google-oss-bot commented 5 months ago

I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.

jonameson commented 5 months ago

We're also seeing lot of remote config crash reports when trying to access variables.


#0  (null) in kevent_id ()
#1  (null) in _dispatch_event_loop_wait_for_ownership ()
#2  (null) in __DISPATCH_WAIT_FOR_QUEUE__ ()
#3  (null) in _dispatch_sync_f_slow ()
#4  0x4ce4cac in -[FIRRemoteConfig configValueForKey:] at /Users/jona/Library/Developer/Xcode/DerivedData/flipaclip-behvdimhwqhunhbioxirkxfgelqm/SourcePackages/checkouts/firebase-ios-sdk/FirebaseRemoteConfig/Sources/FIRRemoteConfig.m:418
#5  0x4ca6d0c in FirebaseServiceSdk.configValue(forKey:) at /Users/jona/Developer/git/flipaclip-ios/flipaclip/Engagement/Sources/Engagement/data/firebase/FirebaseServiceSdk.swift:232
#6  (null) in protocol witness for ServiceSdk.configValue(forKey:) in conformance FirebaseServiceSdk ()
#7  0x4ca076c in RemoteConfigImpl.getActiveContestId() at /Users/jona/Developer/git/flipaclip-ios/flipaclip/Engagement/Sources/Engagement/data/RemoteConfigImpl.swift:118
#8  (null) in protocol witness for RemoteConfig.getActiveContestId() in conformance RemoteConfigImpl ()
#9  0x49b3e4c in ContestService.checkActiveContest() at /Users/jona/Developer/git/flipaclip-ios/flipaclip/flipaclip/Services/ContestService.swift:394
#10 0x49b4cb4 in @objc ContestService.privacySettingsDidChange(notification:) ()
#11 (null) in __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ ()
#12 (null) in ___CFXRegistrationPost_block_invoke ()
#13 (null) in _CFXRegistrationPost ()
#14 (null) in _CFXNotificationPost ()
#15 (null) in -[NSNotificationCenter postNotificationName:object:userInfo:] ()
#16 0x4cc5d34 in closure #1 in BasePrivacyRepository.updatePrivacySettings(_:) at /Users/jona/Developer/git/flipaclip-ios/flipaclip/CorePrivacy/Sources/CorePrivacy/data/BasePrivacyRepository.swift:546
#17 (null) in thunk for @escaping @callee_guaranteed () -> () ()
#18 (null) in _dispatch_call_block_and_release ()
#19 (null) in _dispatch_client_callout ()
#20 (null) in _dispatch_main_queue_drain ()
#21 (null) in _dispatch_main_queue_callback_4CF ()
#22 (null) in __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ ()
#23 (null) in __CFRunLoopRun ()
#24 (null) in CFRunLoopRunSpecific ()
#25 (null) in GSEventRunModal ()
#26 (null) in -[UIApplication _run] ()
#27 (null) in UIApplicationMain ()
#28 0x48e2128 in main at /Users/jona/Developer/git/flipaclip-ios/flipaclip/flipaclip/Application/AppDelegate.swift:24
#29 (null) in start ()
jruston commented 5 months ago

Also experiencing this on 10.25.0.

Thread 9 name: Thread 9 Crashed: 0 libdispatch.dylib 0x00000001b62c2538 _dispatch_sync_f + 4 (queue.c:1898) 1 FirebaseCrashlytics 0x000000010652e87c -[FIRCLSRolloutsPersistenceManager updateRolloutsStateToPersistenceWithRollouts:reportID:] + 356 (FIRCLSRolloutsPersistenceManager.m:60) 2 FirebaseCrashlytics 0x000000010653876c CrashlyticsRemoteConfigManager.updateRolloutsState(rolloutsState:reportID:) + 452 (CrashlyticsRemoteConfigManager.swift:56) 3 FirebaseCrashlytics 0x0000000106538e10 @objc CrashlyticsRemoteConfigManager.updateRolloutsState(rolloutsState:reportID:) + 84 (:0) 4 FirebaseCrashlytics 0x00000001065375e4 -[FIRCrashlytics rolloutsStateDidChange:] + 100 (FIRCrashlytics.m:448) 5 FirebaseRemoteConfig 0x00000001065e7758 52-[FIRRemoteConfig addRemoteConfigInteropSubscriber:]_block_invoke + 84 (FIRRemoteConfig.m:645) 6 CoreFoundation 0x00000001ae32f4b4 CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 128 (CFNotificationCenter.c:694) 7 CoreFoundation 0x00000001ae32ee90 _CFXRegistrationPost_block_invoke + 88 (CFNotificationCenter.c:193) 8 CoreFoundation 0x00000001ae32edd8 _CFXRegistrationPost + 440 (CFNotificationCenter.c:221) 9 CoreFoundation 0x00000001ae32e328 _CFXNotificationPost + 724 (CFNotificationCenter.c:1245) 10 Foundation 0x00000001ad2ca864 -[NSNotificationCenter postNotificationName:object:userInfo:] + 92 (NSNotification.m:531) 11 FirebaseRemoteConfig 0x00000001065e7840 -[FIRRemoteConfig notifyRolloutsStateChange:versionNumber:] + 212 (FIRRemoteConfig.m:665) 12 FirebaseRemoteConfig 0x00000001065e59c0 42-[FIRRemoteConfig activateWithCompletion:]_block_invoke.168 + 88 (FIRRemoteConfig.m:341) 13 libdispatch.dylib 0x00000001b62bb6a8 _dispatch_call_block_and_release + 32 (init.c:1530) 14 libdispatch.dylib 0x00000001b62bd300 _dispatch_client_callout + 20 (object.m:561) 15 libdispatch.dylib 0x00000001b62c044c _dispatch_queue_override_invoke + 928 (queue.c:4882) 16 libdispatch.dylib 0x00000001b62cebe4 _dispatch_root_queue_drain + 392 (queue.c:7051) 17 libdispatch.dylib 0x00000001b62cf3ec _dispatch_worker_thread2 + 156 (queue.c:7119) 18 libsystem_pthread.dylib 0x0000000217d5d928 _pthread_wqthread + 228 (pthread.c:2642) 19 libsystem_pthread.dylib 0x0000000217d5da04 start_wqthread + 8 (:-1)`

jotai-coder commented 5 months ago

We are also seeing this on 10.24

samedson commented 5 months ago

Hey folks, thank you for reporting this issue. I'm going to work on a fix to the hang.

For @jruston and @jonameson, I was wondering what type of crash are you getting from this? Is it just timing out due to the hang, or is there something else happening associated with the crash event? Just want to double check the hang is the root cause.

@jonameson, the crash from https://github.com/firebase/firebase-ios-sdk/issues/12913#issuecomment-2101251341 seems to be a different root cause. Would you be able to open another separate issue for that crash?

jruston commented 5 months ago

@samedson It would appear that what I am seeing is not a hang, though the stacktrace looks the same as the report mentioned by @jonameson. In my case at least, it is a SIGSEGV KERN_INVALID_ADDRESS crash.

tajchert commented 5 months ago

We see almost an additional second in the app start, on version that changed from 10.23.0 to 10.24.0 and 10.25.0 Firebase SDK. This really affects our user experience.

We observe slow app start both in Firebase Performance "_app_start" and in Apple XCode Organizer.

jonameson commented 5 months ago

Hey folks, thank you for reporting this issue. I'm going to work on a fix to the hang.

For @jruston and @jonameson, I was wondering what type of crash are you getting from this? Is it just timing out due to the hang, or is there something else happening associated with the crash event? Just want to double check the hang is the root cause.

@jonameson, the crash from #12913 (comment) seems to be a different root cause. Would you be able to open another separate issue for that crash?

To me they seemed like the same because both are waiting for the queue to clear up causing a hang crash. Just different times when it happens. It might be at app start or a few seconds after the app starts. I can create a new issue... if you want.

samedson commented 5 months ago

@jonameson we're going to ship https://github.com/firebase/firebase-ios-sdk/pull/12977 in the next release that will solve the original issue. Maybe after you try out that change, you can see if the other issue you are reporting also goes away. If it doesn't, I'd recommend making a new issue.

The only reason I didn't think it's the same issue is I don't see anything related to Rollouts in the stacktrace, but they may still be related like you said.

keyahno commented 5 months ago

Do we happen to have a TL for the next release, it seems Firebase does not work to well with ios 17.4 regarding remoteConfig hanging and AppCheck issues @samedson

jruston commented 5 months ago

@samedson I am still seeing crashes in 10.27.0 similar to this. It is possible that the number of crashes is reduced, but I can't say for sure because I have only had 10.27.0 live in my apps for a few days. The crashes in 10.27.0 look like this:

Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000000000054 Thread 6 name: Thread 6 Crashed: 0 libdispatch.dylib 0x00000001ae2ef7d8 dispatch_async + 192 (queue.c:940) 1 FirebaseCrashlytics 0x0000000107cd287c -[FIRCLSRolloutsPersistenceManager updateRolloutsStateToPersistenceWithRollouts:reportID:] + 356 (FIRCLSRolloutsPersistenceManager.m:60) 2 FirebaseCrashlytics 0x0000000107cdc840 CrashlyticsRemoteConfigManager.updateRolloutsState(rolloutsState:reportID:) + 452 (CrashlyticsRemoteConfigManager.swift:56) 3 FirebaseCrashlytics 0x0000000107cdcee4 @objc CrashlyticsRemoteConfigManager.updateRolloutsState(rolloutsState:reportID:) + 84 (:0) 4 FirebaseCrashlytics 0x0000000107cdb6b8 -[FIRCrashlytics rolloutsStateDidChange:] + 100 (FIRCrashlytics.m:448) 5 FirebaseRemoteConfig 0x0000000107dcb758 52-[FIRRemoteConfig addRemoteConfigInteropSubscriber:]_block_invoke + 84 (FIRRemoteConfig.m:645) 6 CoreFoundation 0x00000001a641d794 CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 128 (CFNotificationCenter.c:694) 7 CoreFoundation 0x00000001a641d170 _CFXRegistrationPost_block_invoke + 88 (CFNotificationCenter.c:193) 8 CoreFoundation 0x00000001a641d0b8 _CFXRegistrationPost + 440 (CFNotificationCenter.c:221) 9 CoreFoundation 0x00000001a641c608 _CFXNotificationPost + 728 (CFNotificationCenter.c:1247) 10 Foundation 0x00000001a52aef10 -[NSNotificationCenter postNotificationName:object:userInfo:] + 92 (NSNotification.m:531) 11 FirebaseRemoteConfig 0x0000000107dcb840 -[FIRRemoteConfig notifyRolloutsStateChange:versionNumber:] + 212 (FIRRemoteConfig.m:665) 12 FirebaseRemoteConfig 0x0000000107dc99c0 42-[FIRRemoteConfig activateWithCompletion:]_block_invoke.168 + 88 (FIRRemoteConfig.m:341) 13 libdispatch.dylib 0x00000001ae2e913c _dispatch_call_block_and_release + 32 (init.c:1530) 14 libdispatch.dylib 0x00000001ae2eadd4 _dispatch_client_callout + 20 (object.m:576) 15 libdispatch.dylib 0x00000001ae2edf6c _dispatch_queue_override_invoke + 928 (queue.c:4967) 16 libdispatch.dylib 0x00000001ae2fc894 _dispatch_root_queue_drain + 392 (queue.c:7136) 17 libdispatch.dylib 0x00000001ae2fd09c _dispatch_worker_thread2 + 156 (queue.c:7204) 18 libsystem_pthread.dylib 0x00000002023d0ee4 _pthread_wqthread + 228 (pthread.c:2678) 19 libsystem_pthread.dylib 0x00000002023d0fc0 start_wqthread + 8 (:-1)

themiswang commented 5 months ago

Hey folks,

Sorry about the trouble, I was going for a long vacation, will take a look for the issue.

rizafran commented 4 months ago

Hey all, it looks like the fix for this issue has already been included in Firebase 10.28.0. I'll now be closing this ticket but let us know if the issue persists.