Skip to content

Crashed at FIRExperimentController on 6.6.0 #3732

@letko-dmitry

Description

@letko-dmitry

[REQUIRED] Step 2: Describe your environment

  • Xcode version: 10.3
  • Firebase SDK version: 6.6.0
  • Firebase Component: FirebaseRemoteConfig
  • Component version: 4.2.1
  - Firebase/Analytics (6.6.0):
    - Firebase/Core
  - Firebase/Core (6.6.0):
    - Firebase/CoreOnly
    - FirebaseAnalytics (= 6.1.0)
  - Firebase/CoreOnly (6.6.0):
    - FirebaseCore (= 6.2.0)
  - Firebase/DynamicLinks (6.6.0):
    - Firebase/CoreOnly
    - FirebaseDynamicLinks (~> 4.0.2)
  - Firebase/Performance (6.6.0):
    - Firebase/CoreOnly
    - FirebasePerformance (~> 3.1.2)
  - Firebase/RemoteConfig (6.6.0):
    - Firebase/CoreOnly
    - FirebaseRemoteConfig (~> 4.2.1)
  - FirebaseABTesting (3.0.0):
    - FirebaseCore (~> 6.0)
    - Protobuf (~> 3.5)
  - FirebaseAnalytics (6.1.0):
    - FirebaseCore (~> 6.2)
    - FirebaseInstanceID (~> 4.2)
    - GoogleAppMeasurement (= 6.1.0)
    - GoogleUtilities/AppDelegateSwizzler (~> 6.0)
    - GoogleUtilities/MethodSwizzler (~> 6.0)
    - GoogleUtilities/Network (~> 6.0)
    - "GoogleUtilities/NSData+zlib (~> 6.0)"
    - nanopb (~> 0.3)
  - FirebaseAnalyticsInterop (1.3.0)
  - FirebaseCore (6.2.0):
    - FirebaseCoreDiagnostics (~> 1.0)
    - FirebaseCoreDiagnosticsInterop (~> 1.0)
    - GoogleUtilities/Environment (~> 6.2)
    - GoogleUtilities/Logger (~> 6.2)
  - FirebaseCoreDiagnostics (1.0.1):
    - FirebaseCoreDiagnosticsInterop (~> 1.0)
    - GoogleDataTransportCCTSupport (~> 1.0)
    - GoogleUtilities/Environment (~> 6.2)
    - GoogleUtilities/Logger (~> 6.2)
  - FirebaseCoreDiagnosticsInterop (1.0.0)
  - FirebaseDynamicLinks (4.0.2):
    - FirebaseAnalyticsInterop (~> 1.3)
    - FirebaseCore (~> 6.2)
  - FirebaseInstanceID (4.2.3):
    - FirebaseCore (~> 6.0)
    - GoogleUtilities/Environment (~> 6.0)
    - GoogleUtilities/UserDefaults (~> 6.0)
  - FirebasePerformance (3.1.2):
    - FirebaseCore (~> 6.2)
    - FirebaseInstanceID (~> 4.2)
    - FirebaseRemoteConfig (~> 4.2)
    - GoogleToolboxForMac/Logger (~> 2.1)
    - "GoogleToolboxForMac/NSData+zlib (~> 2.1)"
    - GoogleUtilities/Environment (~> 6.0)
    - GoogleUtilities/ISASwizzler (~> 6.0)
    - GoogleUtilities/MethodSwizzler (~> 6.0)
    - GTMSessionFetcher/Core (~> 1.1)
    - Protobuf (~> 3.5)
  - FirebaseRemoteConfig (4.2.1):
    - FirebaseABTesting (~> 3.0)
    - FirebaseCore (~> 6.1)
    - FirebaseInstanceID (~> 4.2)
    - GoogleUtilities/Environment (~> 6.0)
    - "GoogleUtilities/NSData+zlib (~> 6.0)"
    - Protobuf (~> 3.5)
  - GoogleAppMeasurement (6.1.0):
    - GoogleUtilities/AppDelegateSwizzler (~> 6.0)
    - GoogleUtilities/MethodSwizzler (~> 6.0)
    - GoogleUtilities/Network (~> 6.0)
    - "GoogleUtilities/NSData+zlib (~> 6.0)"
    - nanopb (~> 0.3)
  - GoogleDataTransport (1.1.1)
  - GoogleDataTransportCCTSupport (1.0.1):
    - GoogleDataTransport (~> 1.1)
    - nanopb
  - GoogleToolboxForMac/Defines (2.2.1)
  - GoogleToolboxForMac/Logger (2.2.1):
    - GoogleToolboxForMac/Defines (= 2.2.1)
  - "GoogleToolboxForMac/NSData+zlib (2.2.1)":
    - GoogleToolboxForMac/Defines (= 2.2.1)
  - GoogleUtilities/AppDelegateSwizzler (6.2.5):
    - GoogleUtilities/Environment
    - GoogleUtilities/Logger
    - GoogleUtilities/Network
  - GoogleUtilities/Environment (6.2.5)
  - GoogleUtilities/ISASwizzler (6.2.5)
  - GoogleUtilities/Logger (6.2.5):
    - GoogleUtilities/Environment
  - GoogleUtilities/MethodSwizzler (6.2.5):
    - GoogleUtilities/Logger
  - GoogleUtilities/Network (6.2.5):
    - GoogleUtilities/Logger
    - "GoogleUtilities/NSData+zlib"
    - GoogleUtilities/Reachability
  - "GoogleUtilities/NSData+zlib (6.2.5)"
  - GoogleUtilities/Reachability (6.2.5):
    - GoogleUtilities/Logger
  - GoogleUtilities/UserDefaults (6.2.5):
    - GoogleUtilities/Logger
  - GTMSessionFetcher/Core (1.2.2)
  - nanopb (0.3.901):
    - nanopb/decode (= 0.3.901)
    - nanopb/encode (= 0.3.901)
  - nanopb/decode (0.3.901)
  - nanopb/encode (0.3.901)

[REQUIRED] Step 3: Describe the problem

Looks like an ordinary crash because of mutation during enumeration. Nothing special is done in a client app: initialize SDK in background thread, wait till initialized, activate.

Steps to reproduce:

The issue is hardly reproducible – 1% of all the users experience it and only once.

Relevant Code:

__NSFastEnumerationMutationHandler
*** Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <__NSArrayM: 0x283977120> was mutated while being enumerated.'
Last Exception Backtrace:
0   CoreFoundation                	0x2198f23a8 __exceptionPreprocess + 232 (NSException.m:172)
1   libobjc.A.dylib               	0x218af7d00 objc_exception_throw + 60 (objc-exception.mm:557)
2   CoreFoundation                	0x2198f1c10 __NSFastEnumerationMutationHandler + 132 (NSEnumerator.m:133)
3   libobjc.A.dylib               	0x218b0a4a0 objc_enumerationMutation + 32 (objc-runtime.mm:564)
4   MyApp                       	0x1025f8eb8 -[FIRExperimentController latestExperimentStartTimestampBetweenTimestamp:andPayloads:] + 216
5   MyApp                       	0x102691f00 -[RCNConfigExperiment latestStartTimeWithExistingLastStartTime:] + 84
6   MyApp                       	0x102691da4 -[RCNConfigExperiment updateExperimentStartTime] + 120
7   MyApp                       	0x102691cdc -[RCNConfigExperiment updateExperiments] + 176
8   MyApp                       	0x1026872c8 __49-[FIRRemoteConfig activateWithCompletionHandler:]_block_invoke + 248
9   libdispatch.dylib             	0x219300304 _dispatch_call_block_and_release + 32 (init.c:1372)
10  libdispatch.dylib             	0x219301884 _dispatch_client_callout + 20 (object.m:511)
11  libdispatch.dylib             	0x219308dd4 _dispatch_lane_serial_drain + 552 (inline_internal.h:2441)
12  libdispatch.dylib             	0x219309918 _dispatch_lane_invoke + 364 (inline_internal.h:1808)
13  libdispatch.dylib             	0x219311cc0 _dispatch_workloop_worker_thread + 588 (queue.c:5889)
14  libsystem_pthread.dylib       	0x2194fca98 _pthread_wqthread + 308 (pthread.c:2371)
15  libsystem_pthread.dylib       	0x219502dc4 start_wqthread + 4

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions