Thunderbird UI unusable after timezone detection failed on systems that use short timezone names - missing mail folder tree and message list at startup
Categories
(Calendar :: General, defect, P1)
Tracking
(thunderbird_esr91 unaffected, thunderbird_esr102+ fixed, thunderbird102+ fixed)
Tracking | Status | |
---|---|---|
thunderbird_esr91 | --- | unaffected |
thunderbird_esr102 | + | fixed |
thunderbird102 | + | fixed |
People
(Reporter: t.matsuu, Assigned: KaiE)
References
(Regression)
Details
(Keywords: regression)
Attachments
(2 files, 1 obsolete file)
48 bytes,
text/x-phabricator-request
|
wsmwk
:
approval-comm-beta+
|
Details | Review |
48 bytes,
text/x-phabricator-request
|
wsmwk
:
approval-comm-beta+
|
Details | Review |
Thunderbird daily fails to set calendar.timezone.local on Windows 11 x64 (at least with OS locale Japanese).
Thunderbird tries to set timezone "Etc/GMT-9" and then it is failed.
(The correct time zone is "Asia/Tokyo".)
This prevents the mail folder tree and message list from appearing at startup.
Regression window by mozregression:
https://hg.mozilla.org/comm-central/pushloghtml?fromchange=d2b02892f0b4cd95d470ca2020075767098c3fd4&tochange=6101012f0de3f15cf8018190c0e3a824519ce59b
Possibly regressed by bug 1158733.
Reporter | ||
Comment 1•3 years ago
|
||
The mail folder tree and message list are shown by manually adding "Asia/Tokyo" to calendar.timezone.local.
Updated•3 years ago
|
Updated•3 years ago
|
Comment 2•3 years ago
|
||
Thanks for getting the regression range
Comment 3•3 years ago
|
||
I had a look at it. We should probably add the whole range of timezones prefixed "Etc/GMT" to the internal timezone database as they seem to be canonical timezones. I will try to find a mapping to the geographically named timezones and how it is supposed to work based on the IANA tz database.
Reporter | ||
Comment 4•3 years ago
|
||
"Asia/Tokyo" is set for "Tokyo Standard Time" with country "JP" in the following files:
https://searchfox.org/mozilla-central/rev/80f11ac5d938f6fce255c56279f46f13a49ea5c3/intl/icu/source/data/misc/windowsZones.txt#647-654
https://searchfox.org/mozilla-central/rev/80f11ac5d938f6fce255c56279f46f13a49ea5c3/intl/tzdata/source/windowsZones.txt#647-654
(I don't know which file is referred in this situation)
I found that "tzutil /g" command returns "Tokyo Standard Time_dstoff" not "Tokyo Standard Time".
I don't know how Firefox detect the timezone information on Windows OS, but it's interesting.
Updated•3 years ago
|
Updated•3 years ago
|
Assignee | ||
Updated•3 years ago
|
Assignee | ||
Updated•3 years ago
|
Assignee | ||
Updated•3 years ago
|
Assignee | ||
Comment 7•3 years ago
|
||
Martin, would it make sense to fix this bug by adding a full list of short alias time zone names to zones.json?
Assignee | ||
Comment 8•3 years ago
|
||
Side remark: the zones.json file contains multiple alias definitions that point to "UTC", but apparently it doesn't contain a definition for "UTC"
Assignee | ||
Comment 9•3 years ago
|
||
I'm trying to push this a bit forward, because I think this is a serious issue and needs to block the stable 102 release.
Bug 1158733 removed a call to guessSystemTimezone(), and replaced it with a call to Intl.DateTimeFormat().resolvedOptions().timeZone
It seems this isn't providing equivalent functionality.
Would it be reasonable to add the fold code as a fallback?
Pseudo code:
tzid = Intl.DateTimeFormat().resolvedOptions().timeZone;
if (cannot find tzid in zones.json) {
tzid = guessSystemTimezone();
}
Would we still be able to do this on the 102 branch, given that the commit from bug 1158733 removed lots of strings that were required for the guessSystemTimezone() code? Would we be able to restore the old strings, given that we're after the string freeze?
Updated•3 years ago
|
Assignee | ||
Comment 10•3 years ago
|
||
I played with this a bit.
I'm describing a way to keep the new code, but if it fails, fall back to the old back (which required that we'd have to backout the change).
What I did is:
- revert the patch from bug 1158733 (which still applies, at least to beta 102)
- apply a small patch on top to use the new code first
I'm attaching that patch, which fixes the issue for me.
I cannot say if this is the best approach, it's just an experiment, and a worst-case suggestion (if we cannot find a better approach).
Let's wait for Sean's assessment.
Assignee | ||
Comment 11•3 years ago
|
||
Magnus, just for discussing our options: Please have a look at the patch from bug 1158733 - Would it be possible to backout that on 102 - and bring back the strings? Or is it too late?
Assignee | ||
Updated•3 years ago
|
Comment 12•3 years ago
|
||
The old strings are still available if we need them. https://searchfox.org/l10n/search?q=likelyTimezone&path=&case=false®exp=false
Comment 13•3 years ago
|
||
This seems like a reasonable fix for the time being, though it feels like we'll want tickets both to implement a better fix (i.e., make sure that the new code properly handles all IANA timezones) and—naively, not sure what this would take—to have some sort of sane fallback for the UI in the worst case where we fail to get the timezone right.
Assignee | ||
Comment 14•3 years ago
|
||
Updated•3 years ago
|
Assignee | ||
Comment 15•3 years ago
|
||
Depends on D149250
Assignee | ||
Updated•3 years ago
|
Assignee | ||
Comment 16•3 years ago
|
||
(In reply to Sean Burke [:leftmostcat] from comment #13)
This seems like a reasonable fix for the time being, though it feels like we'll want tickets both to implement a better fix (i.e., make sure that the new code properly handles all IANA timezones) and—naively, not sure what this would take—to have some sort of sane fallback for the UI in the worst case where we fail to get the timezone right.
Sounds good, do you want to file those bugs?
Comment 17•3 years ago
|
||
(In reply to Kai Engert (:KaiE:) from comment #7)
Martin, would it make sense to fix this bug by adding a full list of short alias time zone names to zones.json?
This seems like the correct fix. In my opinion, not all (relevant) timezone names are generated from the tzdata and added to zones.json. Another option would be adding them statically to zones.json and not change the generation process. I also missed some error handling when I changed the code. The existence of the resolved timezone in the shipped timezones (zones.json) should always be checked. If the timezone is unknown, the user should decide what he wants to set as the timezone.
Assignee | ||
Comment 18•3 years ago
|
||
It seems that is will be more work to get the fixes Martin describes in comment 17.
I suggest that we go ahead and land the fixes that I've attached. Sean had already agreed in general, but we need his r+ to land them.
Assignee | ||
Updated•3 years ago
|
Assignee | ||
Comment 20•3 years ago
|
||
Comment on attachment 9281198 [details]
Bug 1760805 - Backout and restore code from bug 1158733, we still need it in a fallback scenario. r=leftmostcat
[Approval Request Comment]
Regression caused by (bug #): 1158733
User impact if declined: TB with fresh profiles completely broken on many systems that use short time zone codes
Testing completed (on c-c, etc.): only manually so far, but should be fine after landing on c-c
Risk to taking this patch (and alternatives if risky): should be low risk, we're restoring code that worked in previous production releases, and are tweaking it slightly
Assignee | ||
Updated•3 years ago
|
Comment 21•3 years ago
|
||
I see there was a "warningUsingFloatingTZNoMatch" case earlier. Didn't look closely, but
Comment 22•3 years ago
|
||
Pushed by mkmelin@iki.fi:
https://hg.mozilla.org/comm-central/rev/06c61f39cb3a
Backout and restore code from bug 1158733, we still need it in a fallback scenario. r=leftmostcat
https://hg.mozilla.org/comm-central/rev/5ace4ab3f00f
If the system timezone name cannot be found in our list, fall back to classic guessing. r=leftmostcat
Comment 23•3 years ago
|
||
Comment on attachment 9281198 [details]
Bug 1760805 - Backout and restore code from bug 1158733, we still need it in a fallback scenario. r=leftmostcat
[Triage Comment]
Approved for beta
Comment 24•3 years ago
|
||
Comment on attachment 9281199 [details]
Bug 1760805 - If the system timezone name cannot be found in our list, fall back to classic guessing. r=leftmostcat
[Triage Comment]
Approved for beta
Comment 25•3 years ago
|
||
bugherder uplift |
Assignee | ||
Comment 26•3 years ago
|
||
Hello Takanori MATSUURA, is the bug fixed for you, too?
Reporter | ||
Updated•3 years ago
|
Assignee | ||
Comment 28•3 years ago
|
||
(In reply to Martin Schröder [:mschroeder] from comment #17)
This seems like the correct fix. In my opinion, not all (relevant) timezone names are generated from the tzdata and added to zones.json. Another option would be adding them statically to zones.json and not change the generation process. I also missed some error handling when I changed the code. The existence of the resolved timezone in the shipped timezones (zones.json) should always be checked. If the timezone is unknown, the user should decide what he wants to set as the timezone.
Martin, could you please file a follow-up bug to get track this, and reference it here?
(I just had a look at https://github.com/mozilla-comm/ical.js - and ran grunt package-zones - and the resulting file gives me definitions for many short names, including "CET" and "Etc/GMT-9".)
Assignee | ||
Comment 29•3 years ago
|
||
Rob, it would be great to check that localized versions of 102 indeed contain the localized strings from the backout. When you work on localized builds, could you please check one random language to verify?
Comment 30•3 years ago
•
|
||
I was asked to test this on https://archive.mozilla.org/pub/thunderbird/candidates/102.0-candidates/build1/.
The default timezone on my system is Europe/Berlin, but it looks like I have to trigger this with a non default timezone? It was not possible through the UI. So I changed calendar.timezone.local
to Etc/GMT-9
and restarted. Thunderbird did not properly start up, but showed the behaviour described in this bug.
Is that the correct way to trigger this bug?
Assignee | ||
Comment 31•3 years ago
|
||
(In reply to John Bieling (:TbSync) from comment #30)
The default timezone on my system is Europe/Berlin, but it looks like I have to trigger this with a non default timezone? It was not possible through the UI. So I changed
calendar.timezone.local
toEtc/GMT-9
and restarted. Thunderbird did not properly start up, but showed the behaviour described in this bug.Is that the correct way to trigger this bug?
No.
If your system timezone name is a supported value, then it probably isn't sufficient to change Thunderbird's own pref calendar.timezone.local to that value.
Assignee | ||
Comment 32•3 years ago
|
||
Regarding my request to Rob from comment 29:
I found a localized german build at
https://archive.mozilla.org/pub/thunderbird/candidates/102.0-candidates/build1/linux-x86_64/de/
I confirmed that one of the restored strings indeed came back in the localized builds, too.
(I looked at WarningUsingGuessedTZ).
I tested it on a system with timezone value CET, and this bug is fixed for me.
Assignee | ||
Comment 33•3 years ago
|
||
In addition I tested locale "be", which lacks translations for many strings. However, it does have the original english string. So for the purpose of fixing this bug, it seems guaranteed that we'll have the english fallback strings at the least.
Updated•3 years ago
|
Updated•3 years ago
|
Updated•3 years ago
|
Description
•