Running v1.5.1 today with Xcode 15.2 targeting iOS 17 and running on iPhone SE (3rd generation) (17.0.1) simulator, Xcode's Thread Sanitizer is detecting a data race inside of func processSignal in SignalManager.swift:
Details
Details
Thread 28: Data race detected
Data race in closure #1 @Sendable () -> () in TelemetryClient.SignalManager.processSignal(_: Swift.String, for: Swift.Optional, floatValue: Swift.Optional, with: Swift.Dictionary, configuration: TelemetryClient.TelemetryManagerConfiguration) -> () at 0x10a954990
WARNING: ThreadSanitizer: data race (pid=9249)
Read of size 8 at 0x00010a9549a8 by thread T30:
#0 closure #1 @Sendable () -> () in TelemetryClient.SignalManager.processSignal(_: Swift.String, for: Swift.Optional, floatValue: Swift.Optional, with: Swift.Dictionary, configuration: TelemetryClient.TelemetryManagerConfiguration) -> () (APP_NAME_REDACTED:arm64+0x10020c738)
#1 partial apply forwarder for closure #1 @Sendable () -> () in TelemetryClient.SignalManager.processSignal(_: Swift.String, for: Swift.Optional, floatValue: Swift.Optional, with: Swift.Dictionary, configuration: TelemetryClient.TelemetryManagerConfiguration) -> () (APP_NAME_REDACTED:arm64+0x10020c884)
#2 reabstraction thunk helper from @escaping @callee_guaranteed @Sendable () -> () to @escaping @callee_unowned @convention(block) @Sendable () -> () (APP_NAME_REDACTED:arm64+0x10020d620)
#3 __tsan::invoke_and_release_block(void*) (libclang_rt.tsan_iossim_dynamic.dylib:arm64+0x77ee0)
#4 _dispatch_client_callout (libdispatch.dylib:arm64+0x5938)
Previous write of size 8 at 0x00010a9549a8 by main thread:
#0 TelemetryClient.SignalManager.(didEnterForeground in _0B2EC98CCF63495C0001E5DC1A280B32)() -> () (APP_NAME_REDACTED:arm64+0x1002103d0)
#1 @objc TelemetryClient.SignalManager.(didEnterForeground in _0B2EC98CCF63495C0001E5DC1A280B32)() -> () (APP_NAME_REDACTED:arm64+0x100210508)
#2 __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ (CoreFoundation:arm64+0x5d038)
#3 main (APP_NAME_REDACTED:arm64+0x1000a9d84)
Summary
Running v1.5.1 today with Xcode 15.2 targeting iOS 17 and running on iPhone SE (3rd generation) (17.0.1) simulator, Xcode's Thread Sanitizer is detecting a data race inside of
func processSignal
in SignalManager.swift:Details
Details
Thread 28: Data race detected
Data race in closure #1 @Sendable () -> () in TelemetryClient.SignalManager.processSignal(_: Swift.String, for: Swift.Optional, floatValue: Swift.Optional, with: Swift.Dictionary, configuration: TelemetryClient.TelemetryManagerConfiguration) -> () at 0x10a954990
WARNING: ThreadSanitizer: data race (pid=9249)
Read of size 8 at 0x00010a9549a8 by thread T30:
#0 closure #1 @Sendable () -> () in TelemetryClient.SignalManager.processSignal(_: Swift.String, for: Swift.Optional, floatValue: Swift.Optional, with: Swift.Dictionary, configuration: TelemetryClient.TelemetryManagerConfiguration) -> () (APP_NAME_REDACTED:arm64+0x10020c738)
#1 partial apply forwarder for closure #1 @Sendable () -> () in TelemetryClient.SignalManager.processSignal(_: Swift.String, for: Swift.Optional, floatValue: Swift.Optional, with: Swift.Dictionary, configuration: TelemetryClient.TelemetryManagerConfiguration) -> () (APP_NAME_REDACTED:arm64+0x10020c884)
#2 reabstraction thunk helper from @escaping @callee_guaranteed @Sendable () -> () to @escaping @callee_unowned @convention(block) @Sendable () -> () (APP_NAME_REDACTED:arm64+0x10020d620)
#3 __tsan::invoke_and_release_block(void*) (libclang_rt.tsan_iossim_dynamic.dylib:arm64+0x77ee0)
#4 _dispatch_client_callout (libdispatch.dylib:arm64+0x5938)
Previous write of size 8 at 0x00010a9549a8 by main thread:
#0 TelemetryClient.SignalManager.(didEnterForeground in _0B2EC98CCF63495C0001E5DC1A280B32)() -> () (APP_NAME_REDACTED:arm64+0x1002103d0)
#1 @objc TelemetryClient.SignalManager.(didEnterForeground in _0B2EC98CCF63495C0001E5DC1A280B32)() -> () (APP_NAME_REDACTED:arm64+0x100210508)
#2 __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ (CoreFoundation:arm64+0x5d038)
#3 main (APP_NAME_REDACTED:arm64+0x1000a9d84)
Stack Trace #1
Stack Trace #2
Thread Sanitizer Screenshot