Subject: chrony: is always offline at system start

From: Friedhelm Mehnert <[email-masked]>
Date: Mon, 21 Aug 2017 17:32:39 +0200

Package: chrony
Version: 1.30-2+deb8u2
Severity: normal

Dear Maintainer,

On *slower systems* like BananaPi chrony is always offline after system
start. To bring it online one has to do: "/etc/init.d/chrony restart".

The course of the problem is a timeout value within the startup-script.
On *slow machines" the startup of chrony takes more than 2 seconds.
The developers have been too optimistic (Developement systems are usualy
pretty fast). ;-)

/etc/init.d/chrony
>     1	#! /bin/sh
>     2	#
>     3	# Written by Miquel van Smoorenburg <[email-masked]>.
>     4	# Modified for Debian GNU/Linux by Ian Murdock <[email-masked]>.
>     5	# Modified for Debian by Christoph Lameter <[email-masked]>
>     6	# Modified for chrony by John Hasler <[email-masked]> 1998-2010
>     7	
>     8	### BEGIN INIT INFO
>     9	# Provides:          chrony
>    10	# Required-Start:    $remote_fs
>    11	# Required-Stop:     $remote_fs
>    12	# Should-Start:      $syslog $network $named $hwclock
>    13	# Should-Stop:       $syslog $network $named $hwclock
>    14	# Default-Start:     2 3 4 5
>    15	# Default-Stop:      0 1 6
>    16	# Short-Description: Controls chronyd NTP time daemon
>    17	# Description:       Chronyd is the NTP time daemon in the Chrony package
>    18	### END INIT INFO
>    19	
>    20	PATH=/bin:/usr/bin:/sbin:/usr/sbin
>    21	DAEMON=/usr/sbin/chronyd
>    22	FLAGS="defaults"
>    23	NAME="chronyd"
>    24	DESC="time daemon"
>    25	
>    26	test -f $DAEMON || exit 0
>    27	
>    28	putonline ()
>    29	{ # Do we have a default route?  If so put chronyd online.
>    30	    if timelimit -q -s9 -t5 -- netstat -rn 2>/dev/null | grep UG | cut -f 1 -d ' ' | grep -q '0\.0\.0\.0' 
>    31	    then
>    32		sleep 2  # Chronyd can take a while to start.
                ^^^^^
THIS needs to be changed to 5!
=================================

>    33		KEY=$(awk '$1 ~ /^commandkey$/ { print $2; exit}' /etc/chrony/chrony.conf)
>    34		PASSWORD=`awk '$1 ~ /^'$KEY'$/ {print $2; exit}' /etc/chrony/chrony.keys`
>    35		# Make sure chronyc can't hang us up.
>    36		if timelimit -q -s9 -t5 -- /usr/bin/chronyc > /dev/null << EOF
>    37	password $PASSWORD
>    38	online
>    39	burst 5/10
>    40	quit
>    41	EOF
>    42	        then
>    43	                touch /var/run/chrony-ppp-up
>    44	                echo "$NAME is running and online."
>    45	        else
>    46	                rm -f /var/run/chrony-ppp-up
>    47	                echo "$NAME is running and offline."    
>    48	        fi
>    49	    else
>    50	        rm -f /var/run/chrony-ppp-up
>    51	        echo "$NAME is running and offline."
>    52	    fi
>    53	}
>    54	
>    55	case "$1" in
>    56	    start)
>    57		start-stop-daemon --start --verbose --exec $DAEMON
>    58		case "$?" in
>    59			0) # daemon successfully started
>    60	#			putonline
>    61				;;
>    62		        1) # daemon already running
>    63			        ;;
>    64			*) # daemon could not be started
>    65				echo "$DAEMON failed to start."
>    66				exit 1
>    67				;;
>    68		esac
>    69		;;
>    70	    stop)
>    71		start-stop-daemon --stop --verbose --oknodo --exec $DAEMON
>    72		rm -f /var/run/chrony-ppp-up
>    73		;;
>    74	    restart|force-reload)
>    75		echo -n "Restarting $DESC: "
>    76		start-stop-daemon --stop --quiet --exec $DAEMON
>    77		sleep 1
>    78		start-stop-daemon --start --verbose --exec $DAEMON -- -r
>    79		case "$?" in
>    80			0) # daemon successfully started
>    81	#			putonline
>    82				;;
>    83		        1) # still running
>    84			        ;;
>    85			*) # daemon could not be started
>    86				echo "$DAEMON failed to restart."
>    87				rm -f /var/run/chrony-ppp-up
>    88				exit 1
>    89				;;
>    90		esac
>    91		;;
>    92	    *)
>    93		echo "Usage: /etc/init.d/chrony {start|stop|restart|force-reload}"
>    94		exit 1
>    95		;;
>    96	esac
>    97	
>    98	exit 0
>

I have had the problem with 3 different machines. All architectures are
affected.

-- System Information:

DEVUAN Jessie.

I deleted the system-information, since Im writing this bug report from
another machine, and it does not make any difference anyway.

Best Regards 
and a BIG THANKYOU for all the good work.

Friedhelm

-- no debconf information