[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