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: VERIFIED --- 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: 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