Skip to content

Standard time -> summer time transition breaks timer for entire day #13745

@OhNoMoreGit

Description

@OhNoMoreGit

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.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions