Bug#1110145: systemd: Timer's elapse time is gradually drifting further into the future

loomylabs universal.wombat at web.de
Wed Jul 30 18:15:13 BST 2025


Package: systemd
Version: 252.38-1~deb12u1
Severity: normal
X-Debbugs-Cc: universal.wombat at web.de

Dear Maintainer,

I have a server configured to automatically suspend using "systemctl suspend" after X minutes of inactivity on specific monitored ports. When traffic is detected on those ports, the gateway wakes the server via Wake-on-LAN.

I have a systemd timer set to reboot the server sometime between 4 and 5 a.m.

The timer looks like this:

[Unit]
Description=Daily reboot

[Timer]
OnCalendar=*-*-* 04:00:00
RandomizedDelaySec=3600
WakeSystem=true
Unit=reboot.target

[Install]
WantedBy=timers.target

Each time the server wakes from suspend, the elapsed time is recalculated and shifts progressively further into the future, significantly surpassing the 4 to 5 o'clock window.

I attempted to fix this by enabling "FixedRandomDelay=true", but it didn't affect the behavior.

These logs show the most extreme instance I've seen to date, every time "Time change, recalculating next elapse." is logged, systemd wakes from suspend and the elapse time has slipped all the way to 10 a.m., which is 5 hours behind schedule.

journalctl logs (LogLevel=debug + FixedRandomDelay=true):

-- Boot --
Jul 28 06:45:47 srv001 systemd[1]: daily-reboot.timer: starting held back, waiting for: time-set.target
Jul 28 06:45:47 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 28 06:45:47 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 04:48:58 CEST.
Jul 28 06:45:47 srv001 systemd[1]: daily-reboot.timer: Changed dead -> waiting
Jul 28 06:45:47 srv001 systemd[1]: daily-reboot.timer: Job 86 daily-reboot.timer/start finished, result=done
Jul 28 06:45:47 srv001 systemd[1]: Started daily-reboot.timer - Daily reboot.
Jul 28 06:45:54 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 28 06:45:54 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 04:48:58 CEST.
Jul 28 06:45:54 srv001 systemd[1]: daily-reboot.timer: Changed dead -> waiting
Jul 28 06:46:18 srv001 systemd[1]: daily-reboot.timer: Time change, recalculating next elapse.
Jul 28 06:46:18 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 28 06:46:18 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 04:48:58 CEST.
Jul 29 04:49:50 srv001 systemd[1]: daily-reboot.timer: Time change, recalculating next elapse.
Jul 29 04:49:50 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 29 04:49:50 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 05:26:46 CEST.
Jul 29 04:50:05 srv001 systemd[1]: daily-reboot.timer: Time change, recalculating next elapse.
Jul 29 04:50:05 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 29 04:50:05 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 05:26:46 CEST.
Jul 29 05:26:49 srv001 systemd[1]: daily-reboot.timer: Time change, recalculating next elapse.
Jul 29 05:26:49 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 29 05:26:49 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 06:01:45 CEST.
Jul 29 05:27:05 srv001 systemd[1]: daily-reboot.timer: Time change, recalculating next elapse.
Jul 29 05:27:05 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 29 05:27:05 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 06:01:46 CEST.
Jul 29 05:42:51 srv001 systemd[1]: daily-reboot.timer: Time change, recalculating next elapse.
Jul 29 05:42:51 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 29 05:42:51 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 06:15:47 CEST.
Jul 29 05:43:07 srv001 systemd[1]: daily-reboot.timer: Time change, recalculating next elapse.
Jul 29 05:43:07 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 29 05:43:07 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 06:15:48 CEST.
Jul 29 06:15:48 srv001 systemd[1]: daily-reboot.timer: Time change, recalculating next elapse.
Jul 29 06:15:48 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 29 06:15:48 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 06:46:44 CEST.
Jul 29 06:16:05 srv001 systemd[1]: daily-reboot.timer: Time change, recalculating next elapse.
Jul 29 06:16:05 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 29 06:16:05 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 06:46:45 CEST.
Jul 29 06:46:48 srv001 systemd[1]: daily-reboot.timer: Time change, recalculating next elapse.
Jul 29 06:46:48 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 29 06:46:48 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 07:15:43 CEST.
Jul 29 06:47:05 srv001 systemd[1]: daily-reboot.timer: Time change, recalculating next elapse.
Jul 29 06:47:05 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 29 06:47:05 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 07:15:46 CEST.
Jul 29 07:15:50 srv001 systemd[1]: daily-reboot.timer: Time change, recalculating next elapse.
Jul 29 07:15:50 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 29 07:15:50 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 07:42:46 CEST.
Jul 29 07:42:52 srv001 systemd[1]: daily-reboot.timer: Time change, recalculating next elapse.
Jul 29 07:42:52 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 29 07:42:52 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 08:07:48 CEST.
Jul 29 07:43:06 srv001 systemd[1]: daily-reboot.timer: Time change, recalculating next elapse.
Jul 29 07:43:06 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 29 07:43:06 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 08:07:46 CEST.
Jul 29 08:07:51 srv001 systemd[1]: daily-reboot.timer: Time change, recalculating next elapse.
Jul 29 08:07:51 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 29 08:07:51 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 08:30:46 CEST.
Jul 29 08:30:51 srv001 systemd[1]: daily-reboot.timer: Time change, recalculating next elapse.
Jul 29 08:30:51 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 29 08:30:51 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 08:51:46 CEST.
Jul 29 08:31:05 srv001 systemd[1]: daily-reboot.timer: Time change, recalculating next elapse.
Jul 29 08:31:05 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 29 08:31:05 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 08:51:46 CEST.
Jul 29 08:51:52 srv001 systemd[1]: daily-reboot.timer: Time change, recalculating next elapse.
Jul 29 08:51:52 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 29 08:51:52 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 09:10:47 CEST.
Jul 29 08:52:06 srv001 systemd[1]: daily-reboot.timer: Time change, recalculating next elapse.
Jul 29 08:52:06 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 29 08:52:06 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 09:10:46 CEST.
Jul 29 09:10:52 srv001 systemd[1]: daily-reboot.timer: Time change, recalculating next elapse.
Jul 29 09:10:52 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 29 09:10:52 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 09:27:47 CEST.
Jul 29 09:11:05 srv001 systemd[1]: daily-reboot.timer: Time change, recalculating next elapse.
Jul 29 09:11:05 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 29 09:11:05 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 09:27:45 CEST.
Jul 29 09:21:39 srv001 systemd[1]: daily-reboot.timer: Time change, recalculating next elapse.
Jul 29 09:21:39 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 29 09:21:39 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 09:36:34 CEST.
Jul 29 09:21:54 srv001 systemd[1]: daily-reboot.timer: Time change, recalculating next elapse.
Jul 29 09:21:54 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 29 09:21:54 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 09:36:34 CEST.
Jul 29 09:30:57 srv001 systemd[1]: daily-reboot.timer: Time change, recalculating next elapse.
Jul 29 09:30:57 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 29 09:30:57 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 09:43:53 CEST.
Jul 29 09:31:13 srv001 systemd[1]: daily-reboot.timer: Time change, recalculating next elapse.
Jul 29 09:31:13 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 29 09:31:13 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 09:43:53 CEST.
Jul 29 09:44:49 srv001 systemd[1]: daily-reboot.timer: Time change, recalculating next elapse.
Jul 29 09:44:49 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 29 09:44:49 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 09:55:44 CEST.
Jul 29 09:45:05 srv001 systemd[1]: daily-reboot.timer: Time change, recalculating next elapse.
Jul 29 09:45:05 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 29 09:45:05 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 09:55:45 CEST.
Jul 29 09:55:49 srv001 systemd[1]: daily-reboot.timer: Time change, recalculating next elapse.
Jul 29 09:55:49 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 29 09:55:49 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 10:04:44 CEST.
Jul 29 09:56:06 srv001 systemd[1]: daily-reboot.timer: Time change, recalculating next elapse.
Jul 29 09:56:06 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 29 09:56:06 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 10:04:46 CEST.
Jul 29 10:04:51 srv001 systemd[1]: daily-reboot.timer: Time change, recalculating next elapse.
Jul 29 10:04:51 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 29 10:04:51 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 10:11:46 CEST.
Jul 29 10:11:51 srv001 systemd[1]: daily-reboot.timer: Time change, recalculating next elapse.
Jul 29 10:11:51 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 29 10:11:51 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 10:16:46 CEST.
Jul 29 10:16:51 srv001 systemd[1]: daily-reboot.timer: Time change, recalculating next elapse.
Jul 29 10:16:51 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 29 10:16:51 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 10:19:46 CEST.
Jul 29 10:19:04 srv001 systemd[1]: daily-reboot.timer: Time change, recalculating next elapse.
Jul 29 10:19:04 srv001 systemd[1]: daily-reboot.timer: Adding 48min 58.106261s random time.
Jul 29 10:19:04 srv001 systemd[1]: daily-reboot.timer: Realtime timer elapses at Tue 2025-07-29 10:19:59 CEST.
Jul 29 10:20:49 srv001 systemd[1]: daily-reboot.timer: Timer elapsed.
Jul 29 10:20:49 srv001 systemd[1]: daily-reboot.timer: Installed new job daily-reboot.timer/stop as 908
Jul 29 10:20:49 srv001 systemd[1]: daily-reboot.timer: Changed waiting -> running
Jul 29 10:20:49 srv001 systemd[1]: daily-reboot.timer: stopping held back, waiting for: timers.target
Jul 29 10:20:49 srv001 systemd[1]: daily-reboot.timer: Deactivated successfully.
Jul 29 10:20:49 srv001 systemd[1]: daily-reboot.timer: Changed running -> dead
Jul 29 10:20:49 srv001 systemd[1]: daily-reboot.timer: Job 908 daily-reboot.timer/stop finished, result=done
Jul 29 10:20:49 srv001 systemd[1]: Stopped daily-reboot.timer - Daily reboot.

-------------------------------------------------------------------------------------------------------------------------

I suspect the issue lies with "RandomizedDelaySec", as I have not seen this drift occur without it.

Thank you for reviewing this matter.


-- Package-specific info:

-- System Information:
Debian Release: 12.11
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 6.1.0-37-amd64 (SMP w/8 CPU threads; PREEMPT)
Locale: LANG=C, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages systemd depends on:
ii  libacl1            2.3.1-3
ii  libaudit1          1:3.0.9-1
ii  libblkid1          2.38.1-5+deb12u3
ii  libc6              2.36-9+deb12u10
ii  libcap2            1:2.66-4+deb12u1
ii  libcryptsetup12    2:2.6.1-4~deb12u2
ii  libfdisk1          2.38.1-5+deb12u3
ii  libgcrypt20        1.10.1-3
ii  libkmod2           30+20221128-1
ii  liblz4-1           1.9.4-1
ii  liblzma5           5.4.1-1
ii  libmount1          2.38.1-5+deb12u3
ii  libp11-kit0        0.24.1-2
ii  libseccomp2        2.5.4-1+deb12u1
ii  libselinux1        3.4-1+b6
ii  libssl3            3.0.16-1~deb12u1
ii  libsystemd-shared  252.38-1~deb12u1
ii  libsystemd0        252.38-1~deb12u1
ii  libzstd1           1.5.4+dfsg2-5
ii  mount              2.38.1-5+deb12u3

Versions of packages systemd recommends:
ii  dbus [default-dbus-system-bus]   1.14.10-1~deb12u1
ii  systemd-timesyncd [time-daemon]  252.38-1~deb12u1

Versions of packages systemd suggests:
ii  libfido2-1             1.12.0-2+b1
pn  libqrencode4           <none>
pn  libtss2-esys-3.0.2-0   <none>
pn  libtss2-mu0            <none>
pn  libtss2-rc0            <none>
pn  polkitd | policykit-1  <none>
pn  systemd-boot           <none>
pn  systemd-container      <none>
pn  systemd-homed          <none>
pn  systemd-resolved       <none>
pn  systemd-userdbd        <none>

Versions of packages systemd is related to:
ii  dbus-user-session  1.14.10-1~deb12u1
pn  dracut             <none>
ii  initramfs-tools    0.142+deb12u3
ii  libnss-systemd     252.38-1~deb12u1
ii  libpam-systemd     252.38-1~deb12u1
ii  udev               252.38-1~deb12u1

-- Configuration Files:
/etc/systemd/system.conf changed [not included]

-- no debconf information



More information about the Pkg-systemd-maintainers mailing list