Bug#1068796: ntpsec-netpdate: starts ntpd if installed, leading to dela
From
Ingo Saitz@21:1/5 to
All on Thu Apr 11 11:30:01 2024
Package: ntpsec-netpdate
Version: 1.2.3+dfsg1-1
Severity: normal
Dear Maintainer,
I observed a 3 minute timeout on boot during "Starting NTP server: ntpd"
This can easily be reproduced on a running system by calling
"invoke-rc.d ntpsec start" again.
On sysvinit systems ifupdown usually runs before the ntpsec daemon gets
started (since ntpsec depends on $network). If it brings up a static
interface, the hook script /etc/network/if-up.d/ntpsec-ntpdate will run
ntpdate and then start the ntpsec deamon regardless whether it was
running or not. Later in the init process, the ntpsec init script is run
again with start. This causes the flock call to wait for 3 minutes,
since the lock is already taken by the demon started from
ntpsec-ntpdate.
Is the flock call in /etc/init.d/ntpsec really needed since
start-stop-daemon already guards the daemon with a pidfile? If it is, 3
minutes seem a long timeout especially during bootup, and when it fails
its return code is ignored and start-stop-daemon is called anyways.
My suggestion would be to remove the flock call in /etc/init.d/ntpsec
and only use start-stop-daemon to guard against multiple starts. Other
options would be:
- in /etc/network/if-up.d/ntpsec-ntpdate test if ntpsec already was
running and only start it again in that case.
- rework /etc/init.d/ntpsec to actually fail in case the lock could not
be acquired, and reduce the timeout to a few seconds, or run the part
of that script in a background shell.
I am not sure about the appropriate serverity, but adding a 3 minute
delay to the boot process (on sysvinit systems with static network
interfaces) feels like a broken boot.
Thanks,
Ingo
-- System Information:
Distributor ID: Devuan
Description: Devuan GNU/Linux 6 (excalibur/ceres)
Release: 6
Codename: excalibur ceres
Architecture: x86_64
Kernel: Linux 6.9.0-rc3-spatz20240410 (SMP w/4 CPU threads)
Kernel taint flags: TAINT_WARN, TAINT_FIRMWARE_WORKAROUND, TAINT_OOT_MODULE Locale: LANG=en_GB.UTF-8, LC_CTYPE= (charmap=UTF-8), LANGUAGE=en_US:en
Shell: /bin/sh linked to /usr/bin/dash
Init: sysvinit (via /sbin/init)
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)