You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
TimeZoneInfoTests.NoBackwardTimeZones tests are failing on Android #117731
Build: 🔎https://dev.azure.com/dnceng-public/public/_build/results?buildId=1096605 Error message validated:[Exception stack traces: at System.Tests.TimeZoneInfoTests.NoBackwardTimeZones()] Result validation: ✅ Known issue matched with the provided build. Validation performed at: 7/16/2025 7:00:02 PM UTC
This comment was generated with the help of AI/Copilot.
Took a look at this to understand the current state. A few observations:
Root cause: On Android, GetTimeZoneIds() filters backward zones via tzlookup.xml (FilterBackwardIDs in TimeZoneInfo.Unix.Android.cs). If tzlookup.xml is missing or incomplete on the device, FilterBackwardIDs returns null and all ~596 IDs are treated as non-backward — resulting in duplicate display names (596 total vs 450 unique).
PR #121095 didn't help Android: That fix returns a filtered dictionary from PopulateAllSystemTimeZones, but it iterates GetTimeZoneIds(), which on Android still returns all IDs when tzlookup.xml is absent. The fix only helped Linux/macOS (where zone.tab is the authoritative source).
The single-device claim is unverifiable: The comment from @matouskozak mentions this only fails on DNCENGWIN-140, but both referenced builds (1096605, 1091157) have been purged from AzDO. The issue body edit history (which may have had additional build IDs) isn't accessible via GitHub's API either. So we can't cross-reference agent names across multiple builds to confirm it's truly device-isolated.
Questions:
Is DNCENGWIN-140 still in the pool? Has anyone checked whether tzlookup.xml exists on its connected Android device?
Would re-imaging/resetting that device resolve this, or should the code handle the missing-tzlookup.xml case more robustly (e.g., deduplicating by display name as a fallback)?
Has this test been tried recently on Android (e.g., by temporarily removing the [ActiveIssue]) to see if the situation has changed?
Activity
dotnet-policy-service commentedon Jul 16, 2025
Tagging subscribers to 'arch-android': @vitek-karas, @simonrozsival, @steveisok, @akoeplinger
See info in area-owners.md if you want to be subscribed.
dotnet-policy-service commentedon Jul 16, 2025
Tagging subscribers to this area: @dotnet/area-system-datetime
See info in area-owners.md if you want to be subscribed.
steveisok commentedon Jul 16, 2025
@matouskozak if this flakes, it might be something weird with a specific device or devices.
tarekgh commentedon Jul 16, 2025
This looks that OS's are getting new TZ data. Look at #117422 which is reported on macOS 26 Preview 3.
matouskozak commentedon Jul 17, 2025
Indeed, I looked into the history, and it is only failing on
DNCENGWIN-140device since 2025-07-10 https://dev.azure.com/dnceng-public/public/_build/results?buildId=1091157&view=results (only on PRs).danmoseley commentedon Mar 22, 2026
Note
This comment was generated with the help of AI/Copilot.
Took a look at this to understand the current state. A few observations:
Root cause: On Android,
GetTimeZoneIds()filters backward zones viatzlookup.xml(FilterBackwardIDsinTimeZoneInfo.Unix.Android.cs). Iftzlookup.xmlis missing or incomplete on the device,FilterBackwardIDsreturnsnulland all ~596 IDs are treated as non-backward — resulting in duplicate display names (596 total vs 450 unique).PR #121095 didn't help Android: That fix returns a filtered dictionary from
PopulateAllSystemTimeZones, but it iteratesGetTimeZoneIds(), which on Android still returns all IDs whentzlookup.xmlis absent. The fix only helped Linux/macOS (wherezone.tabis the authoritative source).The single-device claim is unverifiable: The comment from @matouskozak mentions this only fails on
DNCENGWIN-140, but both referenced builds (1096605,1091157) have been purged from AzDO. The issue body edit history (which may have had additional build IDs) isn't accessible via GitHub's API either. So we can't cross-reference agent names across multiple builds to confirm it's truly device-isolated.Questions:
DNCENGWIN-140still in the pool? Has anyone checked whethertzlookup.xmlexists on its connected Android device?tzlookup.xmlcase more robustly (e.g., deduplicating by display name as a fallback)?[ActiveIssue]) to see if the situation has changed?