Skip to content

Crash in Analytics.configuration.getter #286

Closed
@haugli

Description

@haugli

Describe the bug
After integrating the Segment SDK in our iOS app, we've started seeing a number of crashes in an internal access of Analytics.configuration. This is currently our app's top crasher, although only a small percentage of users have experienced it.

To Reproduce
We haven't found a way to reproduce this crash, as it seems like it happens under specific timing that is hard to replicate.

The crash seems to always occur a few seconds after launching the app, immediately after a successful /projects/{key}/settings fetch.

Platform:

  • Library Version in use: 1.5.0
  • Platform being tested: iOS 16 and 17
  • Integrations in use: none

Stack Traces
There seem to be two common forms of the stack traces for this crash, below is an example of each.

Example 1:

Exception Type: EXC_BREAKPOINT (SIGTRAP)
Crashed Thread: 0

Application Specific Information:
Exception 6, Code 1, Subcode 4355499808

Thread 0 Crashed:
0   MyApp                           0x1039ba720         [inlined] value
1   MyApp                           0x1039ba720         [inlined] Analytics.configuration.getter (Analytics.swift:17)
2   MyApp                           0x1039ba720         IntervalBasedFlushPolicy.configure (IntervalBasedFlushPolicy.swift:42)
3   MyApp                           0x1039c2950         [inlined] thunk for closure
4   MyApp                           0x1039c2950         thunk for closure
5   MyApp                           0x1039c697c         [inlined] thunk for closure
6   MyApp                           0x1039c697c         thunk for closure
7   MyApp                           0x1039c6a24         [inlined] Store.notify<T> (Store.swift:250)
8   MyApp                           0x1039c6a24         Store.notify<T>
9   MyApp                           0x1039c4d90         thunk for closure
10  libdispatch.dylib               0x34d4606a4         _dispatch_call_block_and_release
11  libdispatch.dylib               0x34d4622fc         _dispatch_client_callout
12  libdispatch.dylib               0x34d470994         _dispatch_main_queue_drain
13  libdispatch.dylib               0x34d4705ac         _dispatch_main_queue_callback_4CF
14  CoreFoundation                  0x33d523208         __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__
15  CoreFoundation                  0x33d51ff14         __CFRunLoopRun
16  CoreFoundation                  0x33d51f664         CFRunLoopRunSpecific
17  GraphicsServices                0x3c3ce55e8         GSEventRunModal
18  UIKitCore                       0x341b602b0         -[UIApplication _run]
19  UIKitCore                       0x341b5f8ec         UIApplicationMain
20  SwiftUI                         0x34602e0f8         OUTLINED_FUNCTION_31
21  SwiftUI                         0x34602df3c         OUTLINED_FUNCTION_31
22  SwiftUI                         0x345c9f864         OUTLINED_FUNCTION_26
23  MyApp                           0x200d1f11c         [inlined] AppLauncher.main (MyApp.swift:51)
24  MyApp                           0x200d1f11c         [inlined] AppLauncher.$main (<compiler-generated>:41)
25  MyApp                           0x200d1f11c         main
26  <unknown>                       0x1d826edcc         <redacted>

Example 2:

Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: SEGV_NOOP at 0x000047dab5b44360
Crashed Thread: 0

Application Specific Information:
Exception 1, Code 1, Subcode 79004676932448 >
KERN_INVALID_ADDRESS at 0x47dab5b44360.

Thread 0 Crashed:
0   libswiftCore.dylib              0x351b1611c         _swift_release_dealloc
1   libswiftCore.dylib              0x351b0d4e0         [inlined] swift_dynamicCast
2   libswiftCore.dylib              0x351b0d4e0         swift_dynamicCast
3   MyApp                           0x1073808d8         Store.currentState<T> (Store.swift:185)
4   MyApp                           0x10737656c         [inlined] Analytics.configuration.getter (Analytics.swift:17)
5   MyApp                           0x10737656c         IntervalBasedFlushPolicy.configure (IntervalBasedFlushPolicy.swift:42)
6   MyApp                           0x10737e950         [inlined] thunk for closure
7   MyApp                           0x10737e950         thunk for closure
8   MyApp                           0x10738297c         [inlined] thunk for closure
9   MyApp                           0x10738297c         thunk for closure
10  MyApp                           0x107382a24         [inlined] Store.notify<T> (Store.swift:250)
11  MyApp                           0x107382a24         Store.notify<T>
12  MyApp                           0x107380d90         thunk for closure
13  libdispatch.dylib               0x36c7dc45c         _dispatch_call_block_and_release
14  libdispatch.dylib               0x36c7ddf84         _dispatch_client_callout
15  libdispatch.dylib               0x36c7ec7f0         _dispatch_main_queue_drain
16  libdispatch.dylib               0x36c7ec440         _dispatch_main_queue_callback_4CF
17  CoreFoundation                  0x35dc386c4         __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__
18  CoreFoundation                  0x35dc1a028         __CFRunLoopRun
19  CoreFoundation                  0x35dc1eeac         CFRunLoopRunSpecific
20  GraphicsServices                0x3d2089364         GSEventRunModal
21  UIKitCore                       0x3622e9664         -[UIApplication _run]
22  UIKitCore                       0x3622e92c8         UIApplicationMain
23  SwiftUI                         0x3650fe240         OUTLINED_FUNCTION_895
24  SwiftUI                         0x36505f274         block_copy_helper.1
25  SwiftUI                         0x365048628         OUTLINED_FUNCTION_901
26  MyApp                           0x204cff11c         [inlined] AppLauncher.main (MyApp.swift:51)
27  MyApp                           0x204cff11c         [inlined] AppLauncher.$main (<compiler-generated>:41)
28  MyApp                           0x204cff11c         main
29  <unknown>                       0x1f55e0960         <redacted>

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions