-
Notifications
You must be signed in to change notification settings - Fork 225
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
iOS: Crash in RustLogins/Places forceClose() #1964
Comments
iOS 13 has new background refresh APIs, but these will still crash if |
This PR might help mozilla-mobile/firefox-ios#5692 |
I was listening to the Accidental Tech podcast and those folks were ranting that on iOS 13 you get a hard crash in a background task if you still have open file descriptors. So I wonder if this crash is happening not because |
I believe that is the most likely case. On the rust side IIRC they said they can't do any more than they do to close the file. There is a possibility that there are some async operations which haven't completed, if that PR fixes the problem we can use that info to further understand the original problem. |
This bug only happens on iOS 13.0, 13.1 and 13.2. There are no reports for iOS 12. |
From https://developer.apple.com/library/archive/technotes/tn2151/_index.html
|
This PR should fix the bug then, if the file was staying locked then iOS 12 would have killed it also. |
@garvankeeley Would you consider your PR for Firefox iOS a workaround or a fix? I am just wondering if the root cause is an issue (or behaviour) in RustLogins code. If that is the case then I think we should still ask for a change there. What do you think? |
I'm genuinely unsure what we can do about it. when you forceClose, we call |
Workaround. But it could also be a workaround for an sqlcipher bug, that the db takes additional time to release the file lock. |
Stefan: you may be interested to know, Apple doesn't allow sqlcipher files to be locked in the Shared dir, but tolerates non-sqlcipher db locks (it checks the file header to see if it is a DB file, and this fails on sqlcipher db). sqlcipher/sqlcipher#255 |
Why do we call |
Correction: The PR I referenced above ( mozilla-mobile/firefox-ios#5692. ) will not affect this bug |
Closing, as we have a workaround for most of the problem ( |
x-post mozilla-mobile/firefox-ios#5597
The incidence of this crash has shot up with iOS 13. The background task is being terminated for taking too long, but it looks like it is hung in
forceClose()
.┆Issue is synchronized with this Jira Story
┆Story Points: 3
┆Sprint: SYNC - end 2019-11-08
The text was updated successfully, but these errors were encountered: