[Bug 2062522] Re: std::chrono::locate_zone("Asia/Chungking") fails
Launchpad Bug Tracker
2062522 at bugs.launchpad.net
Mon May 20 20:10:48 UTC 2024
This bug was fixed in the package tzdata - 2024a-4ubuntu1
---------------
tzdata (2024a-4ubuntu1) oracular; urgency=medium
* Merge with Debian unstable. Remaining changes:
- Ship 2024a ICU timezone data which are utilized by PHP in tzdata-icu
- Add autopkgtest test case for ICU timezone data
- Do not rename NEWS into changelog.gz, this fixes a build failure on
moment-timezone.js
- Point Vcs-Browser/Git to Launchpad
- generate_debconf_templates: Work around AttributeError on icu import
tzdata (2024a-4) unstable; urgency=medium
* d/rules: Support creating symlinks pointing to symlinks
* Fixup for avoid timezones being symlinks to symlinks (LP: #2062522)
tzdata (2024a-3) unstable; urgency=medium
* Avoid timezones being symlinks to symlinks to avoid breaking C++20 standard
expectation (LP: #2062522)
-- Benjamin Drung <bdrung at ubuntu.com> Thu, 02 May 2024 18:34:12 +0200
** Changed in: tzdata (Ubuntu)
Status: Fix Committed => Fix Released
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to tzdata in Ubuntu.
https://bugs.launchpad.net/bugs/2062522
Title:
std::chrono::locate_zone("Asia/Chungking") fails
Status in glibc package in Ubuntu:
New
Status in tzdata package in Ubuntu:
Fix Released
Status in tzdata source package in Noble:
Fix Committed
Bug description:
[ Impact ]
forwarded from
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114770
```
#include <chrono>
int main()
{
(void) std::chrono::locate_zone("Asia/Chungking");
}
```
With the latest tzdata (version 2024a-2) on Debian Sid this fails:
terminate called after throwing an instance of 'std::runtime_error'
what(): tzdb: cannot locate zone: Asia/Chungking
Aborted (core dumped)
The problem is a Debian patch that enables link chaining, so that one link can have another link as its target:
https://sources.debian.org/patches/tzdata/2024a-2/ziguard.awk-Move-link-to-link-feature-from-vanguard-to-ma.patch/
This feature was added to tzdata in 2022, but isn't compatible with
the expectations of the C++20 standard. When chrono::locate_zone finds
a link, it expects its target to be a zone, not another link.
[ Test Plan ]
1. Install tzdata-legacy
2. Create `testcase.cpp`:
```
#include <chrono>
int main()
{
(void) std::chrono::locate_zone("Asia/Chungking");
}
```
3. Compile: `g++ -std=c++20 -o testcase testcase.cpp`
4. Run: `./testcase`
The test case should not crash.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/2062522/+subscriptions
More information about the foundations-bugs
mailing list