Bug 1719364

Summary: OnCalendar timers with RandomizedDelaySec != 0 may never run
Product: Red Hat Enterprise Linux 8 Reporter: Renaud Métrich <rmetrich>
Component: systemdAssignee: David Tardon <dtardon>
Status: CLOSED ERRATA QA Contact: Frantisek Sumsal <fsumsal>
Severity: medium Docs Contact:
Priority: medium    
Version: ---CC: bugzilla, dtardon, jamacku, jcastran, jgamba, kwalker, nh2-redhatbugzilla, sjayapra, systemd-maint-list
Target Milestone: rcKeywords: Bugfix, Triaged
Target Release: 8.0   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: systemd-239-77.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 1719366 (view as bug list) Environment:
Last Closed: 2023-11-14 15:48:25 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Renaud Métrich 2019-06-11 15:23:14 UTC
Description of problem:

When a OnCalendar timer is used and RandomizedDelaySec is not zero (case of insights-client.timer for example), the timer may never run, typically when systemd regularly reloads its configuration.


Version-Release number of selected component (if applicable):

systemd-239-13.el8_0.3


How reproducible:

Always


Steps to Reproduce:
1. Create a dummy service

# cat << EOF > /etc/systemd/system/my.service
[Unit]
Description=My one-shot service triggered by a timer
[Service]
Type=oneshot
ExecStart=/bin/echo "I'm running"
EOF

2. Create a timer triggered on calendar with random delay (here, every 10 minutes + 5 minutes delay)

# cat << EOF > /etc/systemd/system/my.timer
[Timer]
OnCalendar=*-*-* *:5,15,25,35,45,55:00
RandomizedDelaySec=300
EOF

3. Set debug level and reload systemd

# systemd-analyze set-log-level debug
# systemctl daemon-reload

4. Follow the journal and start the timer

# journalctl --follow -u my.service -u my.timer &
# systemctl start my.timer

5. Just before timer elapses (but after expected time, issue systemctl daemon-reload)

Journal:

Jun 11 17:08:24 vm-rhel8 systemd[1]: my.timer: Adding 3min 35.811652s random time.
Jun 11 17:08:24 vm-rhel8 systemd[1]: my.timer: Realtime timer elapses at Tue 2019-06-11 17:18:35 CEST.

--> issue "systemctl daemon-reload" between 17:15 and 17:18
In the example below, it was done at 17:16:

Jun 11 17:16:01 vm-rhel8 systemd[1]: my.timer: Adding 4min 19.759514s random time.
Jun 11 17:16:01 vm-rhel8 systemd[1]: my.timer: Realtime timer elapses at Tue 2019-06-11 17:29:19 CEST.

--> service will not run before 17:29

...

Additional info:

This is a huge issue for timer elapsing only once a day, such as insights-client.timer which runs Daily + 4 hours:
as soon as a daemon-reload occurs between midnight and 4 o'clock, the timer won't elapse until next day.

Comment 5 David Tardon 2020-11-19 11:19:06 UTC
*** Bug 1899402 has been marked as a duplicate of this bug. ***

Comment 6 Sandeep MJ 2021-02-04 05:20:08 UTC
Hello,

Any progress on this?

Regards,
Sandeep

Comment 7 David Tardon 2021-02-04 14:30:51 UTC
(In reply to Sandeep MJ from comment #6)
> Any progress on this?

No.

Comment 8 Aaron Howell 2021-03-02 21:52:07 UTC
Any reason this has been fixed in RHEL7 but no progress on RHEL8? (re: https://bugzilla.redhat.com/show_bug.cgi?id=1764908)

Comment 9 David Tardon 2021-03-11 09:07:44 UTC
(In reply to Aaron Howell from comment #8)
> Any reason this has been fixed in RHEL7 but no progress on RHEL8? (re:
> https://bugzilla.redhat.com/show_bug.cgi?id=1764908)

Are you sure it's the same problem? AFAICS your reproducer still doesn't work with current systemd upstream....

Comment 10 Aaron Howell 2021-03-11 21:17:38 UTC
When the same issue was raised against RHEL8 it got closed as a duplicate of this bug: https://bugzilla.redhat.com/show_bug.cgi?id=1899402

Comment 11 David Tardon 2021-03-22 08:07:14 UTC
(In reply to Aaron Howell from comment #10)
> When the same issue was raised against RHEL8 it got closed as a duplicate of
> this bug: https://bugzilla.redhat.com/show_bug.cgi?id=1899402

Well, mistakes happen...

Comment 12 David Tardon 2023-05-15 11:51:59 UTC
*** Bug 2193262 has been marked as a duplicate of this bug. ***

Comment 14 Plumber Bot 2023-07-13 11:46:52 UTC
fix merged to github main branch -> https://github.com/redhat-plumbers/systemd-rhel8/pull/392

Comment 20 errata-xmlrpc 2023-11-14 15:48:25 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (systemd bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2023:7097