-
-
Notifications
You must be signed in to change notification settings - Fork 307
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Sentry gets deadlocked during offline startup #3956
Labels
Comments
To reproduce it you can add sleep into the systemInfo. And there should be a cached envelope in client.
|
Thanks for reaching out @molind. And thanks for the help with the PR. |
This is related to #3899. |
7 tasks
threema-matteo
pushed a commit
to threema-ch/sentry-cocoa
that referenced
this issue
May 21, 2024
Fix a deadlock when two threads access SentrySDK.options and SentrySDK.currentHub, which used the same object in synchronized. This problem is fixed now by using two independent locks for SentrySDK.options and SentrySDK.currentHub. Fixes getsentryGH-3956, Fixes getsentryGH-3899
11 tasks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Platform
iOS
Environment
Production
Installed
Swift Package Manager
Version
8.25.0
Did it work on previous versions?
8.21.0
Steps to Reproduce
application(_: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil)
It's not guaranteed to happen. But in crashlog we can follow to the cause.
Main thread inside the dispatch_once tries to access
[SentryCrashWrapper systemInfo]
and at the same time second thread locks [SentrySDK currentHub], calls[SentryCrashWrapper systemInfo]
and waits for main thread to finish. But main thread can't finish because inside of that dispatch_once it's also tries to access [SentrySDK options].Expected Result
It should start fine
Actual Result
It's locked in deadlock, then app is killed by watchdog.
Are you willing to submit a PR?
I'll try. :)
The text was updated successfully, but these errors were encountered: