firebase / firebase-ios-sdk

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

Deadlock in `FIRCLSUserLoggingWriteAndCheckABFiles` #11900

Closed chan-reclip closed 7 months ago

chan-reclip commented 11 months ago

Description

The app I'm developing freezes in a certain condition. So, I paused Xcode debugger to see where it's stuck. Noticed it's pointing dispatch_sync(...) in FIRCLSUserLoggingWriteAndCheckABFiles().

Reproducing the issue

Can't really tell exact condition. It occasionally happens when Crashlytics.crashlytics().log() is called.

Firebase SDK Version

10.14.0

Xcode Version

15

Installation Method

Swift Package Manager

Firebase Product(s)

Crashlytics

Targeted Platforms

iOS

Relevant Log Output

(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
  * frame #0: 0x00000001d9a40c2c libsystem_kernel.dylib`kevent_id + 8
    frame #1: 0x000000010ae92cf8 libdispatch.dylib`_dispatch_kq_poll + 228
    frame #2: 0x000000010ae936c8 libdispatch.dylib`_dispatch_event_loop_wait_for_ownership + 436
    frame #3: 0x000000010ae8046c libdispatch.dylib`__DISPATCH_WAIT_FOR_QUEUE__ + 356
    frame #4: 0x000000010ae7fdc0 libdispatch.dylib`_dispatch_sync_f_slow + 184
    frame #5: 0x0000000104ceb6c8 Reclip`FIRCLSUserLoggingWriteAndCheckABFiles(storage=0x0000000112178260, activePath=0x0000000112172038, openedFileBlock=0x0000000104cec374) at FIRCLSUserLogging.m:532:3
    frame #6: 0x0000000104cebdd4 Reclip`FIRCLSLogInternal(storage=0x0000000112178260, activePath=0x0000000112172038, message=@"DEBUG: 2023-10-05 23:58:20 +0000:RootViewController:331:setup(notificationRouter:): [Debug] rootTab:capture ChatService.unreadCountPublisher:UnreadCount(channels: 1, messages: 1) ChatService.showUnreadIconForDeeplinkChannel:false") at FIRCLSUserLogging.m:599:3
    frame #7: 0x0000000104cebbe0 Reclip`FIRCLSLog(format=@"%@") at FIRCLSUserLogging.m:417:3
    frame #8: 0x0000000104cfacb8 Reclip`-[FIRCrashlytics log:](self=0x0000000280b6d1d0, _cmd="log:", msg="DEBUG: 2023-10-05 23:58:20 +0000:RootViewController:331:setup(notificationRouter:): [Debug] rootTab:capture ChatService.unreadCountPublisher:UnreadCount(channels: 1, messages: 1) ChatService.showUnreadIconForDeeplinkChannel:false") at FIRCrashlytics.m:284:3
    frame #9: 0x0000000102626150 Reclip`static RemoteLogging.debug(message="2023-10-05 23:58:20 +0000:RootViewController:331:setup(notificationRouter:): [Debug] rootTab:capture ChatService.unreadCountPublisher:UnreadCount(channels: 1, messages: 1) ChatService.showUnreadIconForDeeplinkChannel:false", self=EntrypointIPhone.RemoteLogging) at RemoteLogging.swift:38:35
    frame #10: 0x00000001026266b4 Reclip`protocol witness for static RemoteLoggingType.debug(_:) in conformance RemoteLogging at <compiler-generated>:0
    frame #11: 0x000000010298dab4 Reclip`static Log.log(txt="rootTab:capture ChatService.unreadCountPublisher:UnreadCount(channels: 1, messages: 1) ChatService.showUnreadIconForDeeplinkChannel:false", showDate=true, error=nil, file="/Users/chanryu/Projects/Reclip/reclip-ios/Modules/Sources/EntrypointIPhone/Root/RootViewController.swift", line=331, function="setup(notificationRouter:)", level=<no summary available>, self=Prelude.Log) at Log.swift:142:26
    frame #12: 0x000000010298de78 Reclip`static Log.debug(txt="rootTab:capture ChatService.unreadCountPublisher:UnreadCount(channels: 1, messages: 1) ChatService.showUnreadIconForDeeplinkChannel:false", file="/Users/chanryu/Projects/Reclip/reclip-ios/Modules/Sources/EntrypointIPhone/Root/RootViewController.swift", line=331, function="setup(notificationRouter:)", self=Prelude.Log) at Log.swift:32:9
    frame #13: 0x000000010263a15c Reclip`closure #11 in RootViewController.setup(rootTab=capture, unreadCount=(channels = 1, messages = 1), showUnreadForDeeplink=false) at RootViewController.swift:331:17
    frame #14: 0x000000010263a544 Reclip`thunk for @escaping @callee_guaranteed (@unowned RootTab, @unowned UnreadCount, @unowned Bool) -> (@unowned Int, @unowned Bool) at <compiler-generated>:0
    frame #15: 0x000000019c241410 Combine`Combine.Publishers.Map.Inner.receive(τ_0_0.Output) -> Combine.Subscribers.Demand + 164
    frame #16: 0x000000019c23594c Combine`Combine.AbstractCombineLatest.receive(_: Any, index: Swift.Int) -> Combine.Subscribers.Demand + 928
    frame #17: 0x000000019c235588 Combine`Combine.AbstractCombineLatest.Side.receive(τ_1_0) -> Combine.Subscribers.Demand + 112
    frame #18: 0x000000019c24b508 Combine`Combine.PublishedSubject.Conduit.offer(τ_0_0) -> () + 784
    frame #19: 0x000000019c24b1e8 Combine`partial apply forwarder for closure #1 (Combine.ConduitBase<τ_0_0, Swift.Never>) -> () in Combine.PublishedSubject.send(τ_0_0) -> () + 68
    frame #20: 0x000000019c24ab90 Combine`Combine.ConduitList.forEach((Combine.ConduitBase<τ_0_0, τ_0_1>) throws -> ()) throws -> () + 272
    frame #21: 0x000000019c22c224 Combine`Combine.PublishedSubject.send(τ_0_0) -> () + 352
    frame #22: 0x000000019c22ac7c Combine`static Combine.Published.subscript.setter : <τ_0_0 where τ_1_0: AnyObject>(_enclosingInstance: τ_1_0, wrapped: Swift.ReferenceWritableKeyPath<τ_1_0, τ_0_0>, storage: Swift.ReferenceWritableKeyPath<τ_1_0, Combine.Published<τ_0_0>>) -> τ_0_0 + 420
    frame #23: 0x0000000102581ff8 Reclip`ChatService.showUnreadIconForDeeplinkChannel.setter(value=false, self=0x000000010cb38670) at ChatService.swift:0
    frame #24: 0x0000000102639ef4 Reclip`closure #10 in RootViewController.setup($0=chat, self=0x000000010d066400) at RootViewController.swift:318:72
    frame #25: 0x000000019c22d9c4 Combine`Combine.Subscribers.Sink.receive(τ_0_0) -> Combine.Subscribers.Demand + 96
    frame #26: 0x000000019c22d954 Combine`protocol witness for Combine.Subscriber.receive(τ_0_0.Input) -> Combine.Subscribers.Demand in conformance Combine.Subscribers.Sink<τ_0_0, τ_0_1> : Combine.Subscriber in Combine + 24
    frame #27: 0x000000019c24b508 Combine`Combine.PublishedSubject.Conduit.offer(τ_0_0) -> () + 784
    frame #28: 0x000000019c24b1e8 Combine`partial apply forwarder for closure #1 (Combine.ConduitBase<τ_0_0, Swift.Never>) -> () in Combine.PublishedSubject.send(τ_0_0) -> () + 68
    frame #29: 0x000000019c258cc4 Combine`partial apply forwarder for reabstraction thunk helper <τ_0_0, τ_0_1 where τ_0_1: Swift.Error> from @callee_guaranteed (@guaranteed Combine.ConduitBase<τ_0_0, τ_0_1>) -> (@error @owned Swift.Error) to @escaping @callee_guaranteed (@in_guaranteed Combine.ConduitBase<τ_0_0, τ_0_1>) -> (@error @owned Swift.Error) + 32
    frame #30: 0x000000018c3e49a8 libswiftCore.dylib`Swift.Sequence.forEach((τ_0_0.Element) throws -> ()) throws -> () + 740
    frame #31: 0x000000019c24ab70 Combine`Combine.ConduitList.forEach((Combine.ConduitBase<τ_0_0, τ_0_1>) throws -> ()) throws -> () + 240
    frame #32: 0x000000019c22c224 Combine`Combine.PublishedSubject.send(τ_0_0) -> () + 352
    frame #33: 0x000000019c22ac7c Combine`static Combine.Published.subscript.setter : <τ_0_0 where τ_1_0: AnyObject>(_enclosingInstance: τ_1_0, wrapped: Swift.ReferenceWritableKeyPath<τ_1_0, τ_0_0>, storage: Swift.ReferenceWritableKeyPath<τ_1_0, Combine.Published<τ_0_0>>) -> τ_0_0 + 420
    frame #34: 0x00000001026285fc Reclip`RootInteractor.rootTab.setter(value=chat, self=0x0000000281953ca0) at RootInteractor.swift:0
    frame #35: 0x000000010262d314 Reclip`RootInteractor.didTapChat(self=0x0000000281953ca0) at RootInteractor.swift:142:17
    frame #36: 0x000000010263ac20 Reclip`RootViewController.didTapChat(self=0x000000010d066400) at RootViewController.swift:574:20
    frame #37: 0x0000000102637d78 Reclip`RootViewController.resetToChat(completion=nil, self=0x000000010d066400) at RootViewController.swift:396:13
    frame #38: 0x000000010263b548 Reclip`closure #2 in RootViewController.setupToastServiceNavigation(messageNewEvent=("messaging:!members-eOaWeMWfjOPSNBAl8Yy5dvHR0hpvAPK0BojQ1SGk6Mc"), self=0x000000010d066400) at RootViewController.swift:458:22
    frame #39: 0x000000019c22d9c4 Combine`Combine.Subscribers.Sink.receive(τ_0_0) -> Combine.Subscribers.Demand + 96
    frame #40: 0x000000019c22d954 Combine`protocol witness for Combine.Subscriber.receive(τ_0_0.Input) -> Combine.Subscribers.Demand in conformance Combine.Subscribers.Sink<τ_0_0, τ_0_1> : Combine.Subscriber in Combine + 24
    frame #41: 0x000000019c24b164 Combine`Combine.Publishers.CompactMap.Inner.receive(τ_0_0.Output) -> Combine.Subscribers.Demand + 436
    frame #42: 0x000000019c22d6b0 Combine`closure #1 () -> () in Combine.Publishers.ReceiveOn.Inner.receive(τ_0_0.Output) -> Combine.Subscribers.Demand + 276
    frame #43: 0x000000019204e3a0 Foundation`reabstraction thunk helper from @escaping @callee_guaranteed @Sendable () -> () to @escaping @callee_unowned @convention(block) @Sendable () -> () + 36
    frame #44: 0x0000000192e9cb58 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 28
    frame #45: 0x0000000192e9b34c CoreFoundation`__CFRunLoopDoBlocks + 356
    frame #46: 0x0000000192e9924c CoreFoundation`__CFRunLoopRun + 848
    frame #47: 0x0000000192e98e18 CoreFoundation`CFRunLoopRunSpecific + 608
    frame #48: 0x00000001d59595ec GraphicsServices`GSEventRunModal + 164
    frame #49: 0x00000001952a7350 UIKitCore`-[UIApplication _run] + 888
    frame #50: 0x00000001952a698c UIKitCore`UIApplicationMain + 340
    frame #51: 0x0000000102144080 Reclip`main at main.swift:6:1
    frame #52: 0x00000001b567fd44 dyld`start + 2104

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" : "bfc0b6f81adc06ce5121eb23f628473638d67c5c", "version" : "1.2022062300.0" } }, { "identity" : "anycodable", "kind" : "remoteSourceControl", "location" : "https://github.com/Flight-School/AnyCodable.git", "state" : { "revision" : "862808b2070cd908cb04f9aafe7de83d35f81b05", "version" : "0.6.7" } }, { "identity" : "appsflyerframework", "kind" : "remoteSourceControl", "location" : "https://github.com/AppsFlyerSDK/AppsFlyerFramework.git", "state" : { "revision" : "0d8359239a349db4ac2aba8efe2ad8835fc799b5", "version" : "6.12.2" } }, { "identity" : "combine-schedulers", "kind" : "remoteSourceControl", "location" : "https://github.com/pointfreeco/combine-schedulers", "state" : { "revision" : "ec62f32d21584214a4b27c8cee2b2ad70ab2c38a", "version" : "0.11.0" } }, { "identity" : "combinefirebase", "kind" : "remoteSourceControl", "location" : "https://github.com/urban-health-labs/CombineFirebase", "state" : { "revision" : "77d2c7a9059451344259ab16669d4bd0b78e1e6a", "version" : "0.3.3" } }, { "identity" : "difference", "kind" : "remoteSourceControl", "location" : "https://github.com/krzysztofzablocki/Difference.git", "state" : { "revision" : "02fe1111edc8318c4f8a0da96336fcbcc201f38b", "version" : "1.0.1" } }, { "identity" : "disk", "kind" : "remoteSourceControl", "location" : "https://github.com/saoudrizwan/Disk.git", "state" : { "revision" : "b0cb4fdf23e51849cc2460bdc6de795c3bcca99d", "version" : "0.6.4" } }, { "identity" : "factory", "kind" : "remoteSourceControl", "location" : "https://github.com/hmlongco/Factory", "state" : { "revision" : "061b3afe0358a0da7ce568f8272c847910be3dd7", "version" : "2.2.0" } }, { "identity" : "firebase-ios-sdk", "kind" : "remoteSourceControl", "location" : "https://github.com/firebase/firebase-ios-sdk.git", "state" : { "revision" : "2bfe6abe1014aafe5cf28401708f7d39f9926a76", "version" : "10.14.0" } }, { "identity" : "fittedsheets", "kind" : "remoteSourceControl", "location" : "https://github.com/gordontucker/FittedSheets.git", "state" : { "revision" : "5d7f5a6307ad510aa05de5a4a16ac40846d3b2d3", "version" : "2.6.1" } }, { "identity" : "flanimatedimage", "kind" : "remoteSourceControl", "location" : "https://github.com/Flipboard/FLAnimatedImage.git", "state" : { "revision" : "d4f07b6f164d53c1212c3e54d6460738b1981e9f", "version" : "1.0.17" } }, { "identity" : "flex", "kind" : "remoteSourceControl", "location" : "https://github.com/AndrewSB/FLEX", "state" : { "revision" : "a837105edd37c65ad571df6a61c003c622e6a0a3" } }, { "identity" : "funasync", "kind" : "remoteSourceControl", "location" : "https://github.com/inamiy/FunAsync", "state" : { "revision" : "8811f53863cca5fdcf6fee450e90a26614899c9e" } }, { "identity" : "get", "kind" : "remoteSourceControl", "location" : "https://github.com/kean/Get", "state" : { "revision" : "12830cc64f31789ae6f4352d2d51d03a25fc3741", "version" : "2.1.6" } }, { "identity" : "giphy-ios-sdk", "kind" : "remoteSourceControl", "location" : "https://github.com/Giphy/giphy-ios-sdk.git", "state" : { "revision" : "ba4a17d60352bc8bfaeed2a9cd39990295408fd8", "version" : "2.2.6" } }, { "identity" : "googleappmeasurement", "kind" : "remoteSourceControl", "location" : "https://github.com/google/GoogleAppMeasurement.git", "state" : { "revision" : "03b9beee1a61f62d32c521e172e192a1663a5e8b", "version" : "10.13.0" } }, { "identity" : "googledatatransport", "kind" : "remoteSourceControl", "location" : "https://github.com/google/GoogleDataTransport.git", "state" : { "revision" : "aae45a320fd0d11811820335b1eabc8753902a40", "version" : "9.2.5" } }, { "identity" : "googleutilities", "kind" : "remoteSourceControl", "location" : "https://github.com/google/GoogleUtilities.git", "state" : { "revision" : "c38ce365d77b04a9a300c31061c5227589e5597b", "version" : "7.11.5" } }, { "identity" : "grpc-binary", "kind" : "remoteSourceControl", "location" : "https://github.com/google/grpc-binary.git", "state" : { "revision" : "f1b366129d1125be7db83247e003fc333104b569", "version" : "1.50.2" } }, { "identity" : "gtm-session-fetcher", "kind" : "remoteSourceControl", "location" : "https://github.com/google/gtm-session-fetcher.git", "state" : { "revision" : "d415594121c9e8a4f9d79cecee0965cf35e74dbd", "version" : "3.1.1" } }, { "identity" : "instabug-sp", "kind" : "remoteSourceControl", "location" : "https://github.com/Instabug/Instabug-SP.git", "state" : { "revision" : "f55d8c8a2eb423c22f9faafb9cb6a2453e164772", "version" : "12.0.0" } }, { "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-branch-sdk-spm", "kind" : "remoteSourceControl", "location" : "https://github.com/BranchMetrics/ios-branch-sdk-spm.git", "state" : { "revision" : "7fbe3085821c8e60241a2037098c6eed76fd2798", "version" : "2.2.0" } }, { "identity" : "keychainaccess", "kind" : "remoteSourceControl", "location" : "https://github.com/kishikawakatsumi/KeychainAccess.git", "state" : { "revision" : "84e546727d66f1adc5439debad16270d0fdd04e7", "version" : "4.2.2" } }, { "identity" : "kingfisher", "kind" : "remoteSourceControl", "location" : "https://github.com/onevcat/Kingfisher.git", "state" : { "revision" : "b6f62758f21a8c03cd64f4009c037cfa580a256e", "version" : "7.9.1" } }, { "identity" : "leveldb", "kind" : "remoteSourceControl", "location" : "https://github.com/firebase/leveldb.git", "state" : { "revision" : "0706abcc6b0bd9cedfbb015ba840e4a780b5159b", "version" : "1.22.2" } }, { "identity" : "libwebp-xcode", "kind" : "remoteSourceControl", "location" : "https://github.com/SDWebImage/libwebp-Xcode", "state" : { "revision" : "1cdddb80ccef6d30e869c4abe1f9f3d3871a25b5", "version" : "1.3.1" } }, { "identity" : "lottie-ios", "kind" : "remoteSourceControl", "location" : "https://github.com/airbnb/lottie-ios.git", "state" : { "revision" : "d6feea26a370019b4d3a85f5984cb95a2734776f", "version" : "4.2.0" } }, { "identity" : "marqueelabel", "kind" : "remoteSourceControl", "location" : "https://github.com/cbpowell/MarqueeLabel", "state" : { "revision" : "bc00d4cbff7f6c416035e3d16c21885452cd159e", "version" : "4.3.1" } }, { "identity" : "mixpanel-swift", "kind" : "remoteSourceControl", "location" : "https://github.com/mixpanel/mixpanel-swift", "state" : { "revision" : "8ce81c8ed451d8aa5ede028e3838fd41e67938c9", "version" : "4.1.4" } }, { "identity" : "multipartformdatakit", "kind" : "remoteSourceControl", "location" : "https://github.com/Kuniwak/MultipartFormDataKit", "state" : { "revision" : "666c1715f6e70f4589d11ae2936eb16bf018ccd4" } }, { "identity" : "nanopb", "kind" : "remoteSourceControl", "location" : "https://github.com/firebase/nanopb.git", "state" : { "revision" : "819d0a2173aff699fb8c364b6fb906f7cdb1a692", "version" : "2.30909.0" } }, { "identity" : "nextlevelsessionexporter", "kind" : "remoteSourceControl", "location" : "https://github.com/rromanchuk/NextLevelSessionExporter.git", "state" : { "revision" : "75cad73f3d369abd8488debe707c9a8b69f7a9b6" } }, { "identity" : "notificationbanner", "kind" : "remoteSourceControl", "location" : "https://github.com/Daltron/NotificationBanner.git", "state" : { "revision" : "1406ac60bcab58074fc969e9b4cb804679832c8e", "version" : "3.2.1" } }, { "identity" : "nuke", "kind" : "remoteSourceControl", "location" : "https://github.com/kean/Nuke.git", "state" : { "revision" : "93c8dc78fbc0aa3538a0db460eb389d4180af242", "version" : "11.3.1" } }, { "identity" : "onesignal-xcframework", "kind" : "remoteSourceControl", "location" : "https://github.com/OneSignal/OneSignal-XCFramework.git", "state" : { "revision" : "b466a821e03008ecae885ebf79f52e4b88269b06", "version" : "3.12.6" } }, { "identity" : "phonenumberkit", "kind" : "remoteSourceControl", "location" : "https://github.com/marmelroy/PhoneNumberKit.git", "state" : { "revision" : "1e984b63edf82133d390db4873b3915fc837e8bd", "version" : "3.6.8" } }, { "identity" : "promises", "kind" : "remoteSourceControl", "location" : "https://github.com/google/promises.git", "state" : { "revision" : "e70e889c0196c76d22759eb50d6a0270ca9f1d9e", "version" : "2.3.1" } }, { "identity" : "pulse", "kind" : "remoteSourceControl", "location" : "https://github.com/kean/Pulse", "state" : { "revision" : "e080339a24f5a47461378e5fe02ba3f2ef0a2cfa", "version" : "4.0.3" } }, { "identity" : "queryable", "kind" : "remoteSourceControl", "location" : "https://github.com/SwiftedMind/Queryable", "state" : { "revision" : "7677089e3f0db3544ed657c18ed051a18f6dd781", "version" : "1.0.2" } }, { "identity" : "reachability.swift", "kind" : "remoteSourceControl", "location" : "https://github.com/ashleymills/Reachability.swift", "state" : { "revision" : "c01bbdf2d633cf049ae1ed1a68a2020a8bda32e2", "version" : "5.1.0" } }, { "identity" : "realflags", "kind" : "remoteSourceControl", "location" : "https://github.com/immobiliare/RealFlags.git", "state" : { "revision" : "9e6076aa0607bce6f57253a3aad8465c183402b7" } }, { "identity" : "snap-kit-spm", "kind" : "remoteSourceControl", "location" : "https://github.com/Snapchat/snap-kit-spm", "state" : { "revision" : "071281e1d9a1f3f6a875b105d866e2ab3d7c4234", "version" : "2.4.0" } }, { "identity" : "snapkit", "kind" : "remoteSourceControl", "location" : "https://github.com/SnapKit/SnapKit.git", "state" : { "revision" : "f222cbdf325885926566172f6f5f06af95473158", "version" : "5.6.0" } }, { "identity" : "sqlite.swift", "kind" : "remoteSourceControl", "location" : "https://github.com/stephencelis/SQLite.swift.git", "state" : { "revision" : "7a2e3cd27de56f6d396e84f63beefd0267b55ccb", "version" : "0.14.1" } }, { "identity" : "stream-chat-swift", "kind" : "remoteSourceControl", "location" : "https://github.com/reclipapp/stream-chat-swift.git", "state" : { "branch" : "reclip-4.37.0", "revision" : "35c660c44b71e05b26ea936f6cd8ab03b655311b" } }, { "identity" : "stream-chat-swift-test-helpers", "kind" : "remoteSourceControl", "location" : "https://github.com/GetStream/stream-chat-swift-test-helpers.git", "state" : { "revision" : "938bba9a3714e3d139d9460fcd6ee9b851e33807", "version" : "0.2.11" } }, { "identity" : "stream-chat-swiftui", "kind" : "remoteSourceControl", "location" : "https://github.com/reclipapp/stream-chat-swiftui.git", "state" : { "branch" : "reclip-4.37.1", "revision" : "9fa16dfeac06781232568d51051ba43c7b47c470" } }, { "identity" : "swift-clocks", "kind" : "remoteSourceControl", "location" : "https://github.com/pointfreeco/swift-clocks", "state" : { "revision" : "0fbaebfc013715dab44d715a4d350ba37f297e4d", "version" : "0.4.0" } }, { "identity" : "swift-collections", "kind" : "remoteSourceControl", "location" : "https://github.com/apple/swift-collections.git", "state" : { "revision" : "937e904258d22af6e447a0b72c0bc67583ef64a2", "version" : "1.0.4" } }, { "identity" : "swift-concurrency-extras", "kind" : "remoteSourceControl", "location" : "https://github.com/pointfreeco/swift-concurrency-extras", "state" : { "revision" : "479750bd98fac2e813fffcf2af0728b5b0085795", "version" : "0.1.1" } }, { "identity" : "swift-custom-dump", "kind" : "remoteSourceControl", "location" : "https://github.com/pointfreeco/swift-custom-dump", "state" : { "revision" : "4a87bb75be70c983a9548597e8783236feb3401e", "version" : "0.11.1" } }, { "identity" : "swift-dependencies", "kind" : "remoteSourceControl", "location" : "https://github.com/pointfreeco/swift-dependencies", "state" : { "revision" : "16fd42ae04c6e7f74a6a86395d04722c641cccee", "version" : "0.6.0" } }, { "identity" : "swift-nonempty", "kind" : "remoteSourceControl", "location" : "https://github.com/pointfreeco/swift-nonempty", "state" : { "revision" : "8074e5f2e4a6de5a42476e545cc33438021aa2a4", "version" : "0.4.0" } }, { "identity" : "swift-protobuf", "kind" : "remoteSourceControl", "location" : "https://github.com/apple/swift-protobuf.git", "state" : { "revision" : "cf62cdaea48b77f1a631e5cb3aeda6047c2cba1d", "version" : "1.23.0" } }, { "identity" : "swift-snapshot-testing", "kind" : "remoteSourceControl", "location" : "https://github.com/pointfreeco/swift-snapshot-testing", "state" : { "revision" : "26ed3a2b4a2df47917ca9b790a57f91285b923fb", "version" : "1.12.0" } }, { "identity" : "swift-tagged", "kind" : "remoteSourceControl", "location" : "https://github.com/pointfreeco/swift-tagged", "state" : { "revision" : "3907a9438f5b57d317001dc99f3f11b46882272b", "version" : "0.10.0" } }, { "identity" : "swifter", "kind" : "remoteSourceControl", "location" : "https://github.com/httpswift/swifter", "state" : { "revision" : "9483a5d459b45c3ffd059f7b55f9638e268632fd", "version" : "1.5.0" } }, { "identity" : "swiftrunonce", "kind" : "remoteSourceControl", "location" : "https://github.com/thumbtack/SwiftRunOnce.git", "state" : { "revision" : "a6ed347f6fd5112c4e059ed4d14b92da09c7f62f", "version" : "0.2.1" } }, { "identity" : "swifttweaks", "kind" : "remoteSourceControl", "location" : "https://github.com/AndrewSB/SwiftTweaks", "state" : { "branch" : "c677ae3", "revision" : "c677ae3e8b19bbdf7400e90d73d79acb06e1cbd3" } }, { "identity" : "swiftui-introspect", "kind" : "remoteSourceControl", "location" : "https://github.com/siteline/SwiftUI-Introspect", "state" : { "revision" : "ccb973cfff703cba53fb88197413485c060eb26b", "version" : "0.10.0" } }, { "identity" : "swiftuipager", "kind" : "remoteSourceControl", "location" : "https://github.com/fermoya/SwiftUIPager.git", "state" : { "revision" : "4ddc04c801aac143090bb14cf26603a3bf9c74cb", "version" : "2.5.0" } }, { "identity" : "swipetransition", "kind" : "remoteSourceControl", "location" : "https://github.com/reclipapp/SwipeTransition", "state" : { "revision" : "222f5246f128ab459a20aef06935e6ef29240e51" } }, { "identity" : "then", "kind" : "remoteSourceControl", "location" : "https://github.com/jacobh0/Then.git", "state" : { "branch" : "master", "revision" : "b7fe324970608d3266ca9108120e6d448005f055" } }, { "identity" : "updatingtimeagoview", "kind" : "remoteSourceControl", "location" : "https://github.com/AndrewSB/UpdatingTimeAgoView.git", "state" : { "branch" : "main", "revision" : "401a3bb1fdccdb98b1ecc2b8b14a5ac46d206bbf" } }, { "identity" : "urlqueryencoder", "kind" : "remoteSourceControl", "location" : "https://github.com/CreateAPI/URLQueryEncoder", "state" : { "revision" : "4ce950479707ea109f229d7230ec074a133b15d7", "version" : "0.2.1" } }, { "identity" : "viewextractor", "kind" : "remoteSourceControl", "location" : "https://github.com/GeorgeElsham/ViewExtractor.git", "state" : { "revision" : "e20b1944524d4454c2a65c0054ce345c2c5d0185", "version" : "2.0.0" } }, { "identity" : "xctest-dynamic-overlay", "kind" : "remoteSourceControl", "location" : "https://github.com/pointfreeco/xctest-dynamic-overlay", "state" : { "revision" : "50843cbb8551db836adec2290bb4bc6bac5c1865", "version" : "0.9.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 11 months ago

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

morganchen12 commented 11 months ago

@themiswang do you know why this line of code has to be a dispatch_sync instead of dispatch_async?

@chan-reclip can you run bt all when reproing the deadlock so I can see what other threads are stuck waiting?

chan-reclip commented 11 months ago

@chan-reclip can you run bt all when reproing the deadlock so I can see what other threads are stuck waiting?

Sure, will do that next I hit this.

samedson commented 10 months ago

Thanks - @chan-reclip the thread that's likely causing the stoppage here is the Crashlytics logging queue. It'll have the name com.crashlytics....logging

themiswang commented 7 months ago

Sorry for the really delayed reply, I am just looking into this piece of code recently. dispatch_sync there is because we want to serialize the file read process (prevents two threads write to the same file same time). As Sam mentioned, we might need to see the backtrace for com.crashlytics....logging thread

google-oss-bot commented 7 months ago

Hey @chan-reclip. We need more information to resolve this issue but there hasn't been an update in 5 weekdays. I'm marking the issue as stale and if there are no new updates in the next 5 days I will close it automatically.

If you have more information that will help us get to the bottom of this, just add a comment!

google-oss-bot commented 7 months ago

Since there haven't been any recent updates here, I am going to close this issue.

@chan-reclip if you're still experiencing this problem and want to continue the discussion just leave a comment here and we are happy to re-open this.