-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Description
systemd version the issue has been seen with
systemd v243
Used distribution
Fedora
Description of problem
The Australia/Sydney time zone transitioned from standard time to summer time at 02:00 on Sunday 2019-10-06. I have a timer unit set to fire every four hours:
OnCalendar=02/4:30:00
It is expected (and for me acceptable) that this will miss activating the associated service at 02:30 on that day, since that wall-clock time does not exist. See #5595 for discussion on this behaviour.
However, systemd also skipped activating the service at 06:30, 10:30, etc., until 02:30 on the following day. This means a timer that was configured to run every 4 hours actually had a gap of 27 hours between two activations.
Steps to reproduce the problem
$ TZ=Australia/Sydney faketime 2019-10-06 date
Sun Oct 6 00:00:00 AEST 2019
$ TZ=Australia/Sydney faketime 2019-10-06 systemd-analyze calendar 2/4:30
Original form: 2/4:30
Normalized form: *-*-* 02/4:30:00
Next elapse: Mon 2019-10-07 02:30:00 AEDT
(in UTC): Sun 2019-10-06 15:30:00 UTC
From now: 1 day 1h left
This runs systemd-analyze as if the current time were midnight at the start of 2019-10-06. The four-hourly timer, starting at 02:30, doesn't elapse until the following day.
I would expect instead something like:
Original form: 2/4:30
Normalized form: *-*-* 02/4:30:00
Next elapse: Sun 2019-10-06 06:30:00 AEDT
(in UTC): Sat 2019-10-05 20:30:00 UTC
From now: 5h 30min left
That is, I would expect the 02:30 activation only to be skipped.
(For reference, AEST == UTC+10, AEDT == UTC+11.)