[Bug 1966800] Re: systemd locks up due to incorrect handling of time zone changes

Nick Rosbrook 1966800 at bugs.launchpad.net
Thu Sep 8 17:19:11 UTC 2022


The autopkgtest regressions were resolved by retries.

I have verified this fix on focal using the test plan above:

nr at clean-focal-amd64:~$ apt-cache policy systemd
systemd:
  Installed: 245.4-4ubuntu3.18
  Candidate: 245.4-4ubuntu3.18
  Version table:
 *** 245.4-4ubuntu3.18 500
        500 http://archive.ubuntu.com/ubuntu focal-proposed/main amd64 Packages
        100 /var/lib/dpkg/status
     245.4-4ubuntu3.17 500
        500 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages
     245.4-4ubuntu3.15 500
        500 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages
     245.4-4ubuntu3 500
        500 http://archive.ubuntu.com/ubuntu focal/main amd64 Packages

nr at clean-focal-amd64:~$ cat /etc/systemd/system/lp-1966800-reproducer.timer 
[Unit]
Description=LP 1966800 reproducer

[Timer]
OnCalendar=Sun *-*-* 01:00:00
Persistent=true

[Install]
WantedBy=timers.target

nr at clean-focal-amd64:~$ cat /etc/systemd/system/lp-1966800-reproducer.service 
[Service]
ExecStart=/usr/bin/echo "LP 1966800 reproducer"

nr at clean-focal-amd64:~$ sudo systemctl daemon-reload
nr at clean-focal-amd64:~$ sudo timedatectl set-ntp false
nr at clean-focal-amd64:~$ sudo timedatectl set-time "2021-03-21"
nr at clean-focal-amd64:~$ sudo timedatectl set-timezone Europe/Dublin 
nr at clean-focal-amd64:~$ sudo systemctl start lp-1966800-reproducer.timer
nr at clean-focal-amd64:~$ sudo systemctl status 
● clean-focal-amd64
    State: running
     Jobs: 0 queued
   Failed: 0 units
    Since: Thu 2022-09-08 18:08:29 IST; 1 years 5 months left
   CGroup: /
           ├─user.slice 
           │ └─user-1000.slice 
           │   ├─user at 1000.service …
           │   │ ├─gsd-xsettings.service 
           │   │ │ └─1565 /usr/libexec/gsd-xsettings
           │   │ ├─gvfs-goa-volume-monitor.service 
           │   │ │ └─1216 /usr/libexec/gvfs-goa-volume-monitor
           │   │ ├─gsd-power.service 
           │   │ │ └─1531 /usr/libexec/gsd-power
           │   │ ├─xdg-permission-store.service 
           │   │ │ └─1444 /usr/libexec/xdg-permission-store
           │   │ ├─gsd-sound.service 
           │   │ │ └─1552 /usr/libexec/gsd-sound
           │   │ ├─gsd-rfkill.service 
           │   │ │ └─1535 /usr/libexec/gsd-rfkill
           │   │ ├─gsd-usb-protection.service 
           │   │ │ └─1555 /usr/libexec/gsd-usb-protection
           │   │ ├─gsd-print-notifications.service 
           │   │ │ ├─1534 /usr/libexec/gsd-print-notifications
           │   │ │ └─1609 /usr/libexec/gsd-printer
           │   │ ├─evolution-calendar-factory.service 
           │   │ │ └─1465 /usr/libexec/evolution-calendar-factory
           │   │ ├─gsd-a11y-settings.service 
           │   │ │ └─1517 /usr/libexec/gsd-a11y-settings
           │   │ ├─gsd-wwan.service 
           │   │ │ └─1563 /usr/libexec/gsd-wwan
           │   │ ├─pulseaudio.service 
           │   │ │ └─1162 /usr/bin/pulseaudio --daemonize=no --log-target=journal
           │   │ ├─gsd-screensaver-proxy.service 
           │   │ │ └─1537 /usr/libexec/gsd-screensaver-proxy
           │   │ ├─gsd-media-keys.service 


** Tags removed: verification-needed verification-needed-focal
** Tags added: verification-done verification-done-focal

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/1966800

Title:
  systemd locks up due to incorrect handling of time zone changes

Status in systemd package in Ubuntu:
  Fix Released
Status in systemd source package in Focal:
  Fix Committed
Status in systemd package in Fedora:
  Unknown

Bug description:
  [Impact]

  This bug can cause systemd timers to lock up systems using the
  Europe/Dublin timezone if certain OnCalendar values are used. If the
  timer is enabled at boot, this bug prevents the system from booting.
  If the timer is started later, systemd becomes unresponsive.

  [Test Plan]

  * Create a systemd service and corresponding timer scheduled for 01:00
  on Sundays:

  $ cat /etc/systemd/system/lp-1966800-reproducer.timer
   [Unit]
   Description=LP 1966800 reproducer

   [Timer]
   OnCalendar=Sun *-*-* 01:00:00
   Persistent=true

   [Install]
   WantedBy=timers.target

   $ cat /etc/systemd/system/lp-1966800-reproducer.service
   [Service]
   ExecStart=/usr/bin/echo "LP 1966800 reproducer"

   $ systemctl daemon-reload

  * Set the date to 21 March, 2021 in the Europe/Dublin timezone (need
  to disable NTP first):

   $ timedatectl set-ntp false
   $ timedatectl set-time "2021-03-21"
   $ timedatectl set-timezone Europe/Dublin

  * Try to start the timer, and observe that systemd becomes
  unresponsive. This command will time out, as will `systemctl status`
  etc.

   $ systemctl start lp-1966800-reproducer.timer

  [Where problems could occur]

  The patch makes changes in the calendar spec code, which is used by
  systemd timers to determine the next time to trigger a timer. If this
  patch breaks something, it would be related to the triggering of
  systemd timers.

  [Original Description]

  Recently on systems in Ireland, systemd became unresponsive due the
  change from GMT to Irish Standard Time. This is due to Ireland being
  unique in having their standard time during the summer, unlike most
  regions.

  Related to: https://bugzilla.redhat.com/show_bug.cgi?id=1941335
  Fixed by: https://github.com/systemd/systemd-stable/commit/a8b66ca9af811148b67ee952ab32748f88b8bba3

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1966800/+subscriptions




More information about the foundations-bugs mailing list