-
Notifications
You must be signed in to change notification settings - Fork 110
currentSystemDefault() iOS crash with "Exception: Invalid zone ID: Europe/Paris" #485
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
Comments
I've double-checked that |
It's not my device, so I can't repro locally unfortunately; it's copied from an internal bug report. Given that it crashes inside currentSystemDefault() it doesn't look like something that could stem from our client code.
|
P.S: Sorry, the hex string is probably a red herring -- it was added by our system to create a unique identifier. I have updated the original message from the report details with the exact strings |
Any ideas how this could happen? Europe/Paris seems to be in your region database... |
If the timezone is
If the timezone is
We can work around both, probably, but we do need to understand where the problem lies first. |
Sorry about the red herring. The Time Zone was "Europe/Paris", and we see this for other time zones, too:
Could you get the region database information from a native NSTimeZone object instead? |
That was the initial approach we took, but since https://developer.apple.com/documentation/foundation/timezone does not expose all the information we need, we had to change the implementation to query the filesystem directly. Actually, https://developer.apple.com/documentation/foundation/nstimezone/1387213-data also contains the data we need, but "Treat this data as an opaque object" is very clear in that we should not access it. |
The comments here mention |
Yes, it's a couple of megabytes. |
A colleague found this: https://www.reddit.com/r/jailbreak/comments/3ll1rf/tutorial_solution_how_to_fix_broken_timezone_in/ We don't think this is the issue here -- but maybe it's worthwhile adding the "simulator" path as a fallback? |
If it turns out that there are devices where the simulator path exists, but the default path doesn't, then of course! When we get access to a device where the issue can be reproduced, we'll see which approach is the most promising. |
These reports only started when we pulled in a new version of this API. Would a fallback to the previous implementation be an option, dropping the missing information in that case? We have a significant number of these crashes, but we don't have access to a device where we can reproduce this. |
Sure, it's an option. If it turns out that our current approach doesn't (and can't be made to) work consistently, we'll introduce some fallback. To anyone reading this: please leave a comment if you have access to a device where this reproduces and are willing to run several tests on it, so that we could test which implementation options are viable! I'll implement a set of diagnostics in the meantime. |
…otlinx.datetime See Kotlin/kotlinx-datetime#485 PiperOrigin-RevId: 727757611
@stefanhaustein, since there are several crashes logged, could you please collect the list of devices and iOS versions where they happened? Are they all on iPad11,6 + iOS 17.6.1 21G93, or is it possible to observe the bug on other configurations? |
Unfortunately, I don't see a pattern in the devices (iPad6..13, iPhone 10..15) or OS versions (16.1 ... 18.3).... |
Uh oh!
There was an error while loading. Please reload this page.
Device data for an example instance
Kotlinx DateTime Version: 0.6.1
The text was updated successfully, but these errors were encountered: