Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 28 Nov 2017 14:44:49 +0100
From:      Andre Albsmeier <andre@fbsd.e4m.org>
To:        Cy Schubert <cy@FreeBSD.org>
Cc:        svn-src-stable-11@freebsd.org, andre@fbsd.e4m.org
Subject:   Re: svn commit: r325256 - in stable/11/etc: periodic/daily rc.d
Message-ID:  <20171128134449.GA2549@voyager>
In-Reply-To: <201711010103.vA113iPh014257@repo.freebsd.org>
References:  <201711010103.vA113iPh014257@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 01-Nov-2017 at 01:03:44 +0000, Cy Schubert wrote:
> Author: cy
> Date: Wed Nov  1 01:03:44 2017
> New Revision: 325256
> URL: https://svnweb.freebsd.org/changeset/base/325256
> 
> Log:
>   MFC r324681, r324738
>   
>   Anticongestion refinements for ntpd rc script. This checks if ntp
>   leapfile needs fetching before entering into the anticongestion sleep.

I wonder if this will ever actually fetch leapfiles ;-)

When ntpd_fetch_leapfile() is called, $ntp_tmp_leapfile will be
empty as it was declared local in ntpd_needfetch_leapfile() resulting in:

usage: fetch [-146AadFlMmnPpqRrsUv] [-B bytes] [--bind-address=host]
       [--ca-cert=file] [--ca-path=dir] [--cert=file] [--crl=file]
       [-i file] [--key=file] [-N file] [--no-passive] [--no-proxy=list]
...

since the argument to fetch's -o is missing... Either we duplicate

        ntp_tmp_leapfile="/var/run/ntpd.leap-seconds.list"

in ntpd_fetch_leapfile() or remove it from the local list in 
ntpd_needfetch_leapfile() (which is hacky as this will require
ntpd_needfetch_leapfile() being called before each ntpd_fetch_leapfile())
or we simply put 

ntp_tmp_leapfile="/var/run/ntpd.leap-seconds.list"

on top of the script and remove other assignments and local defs...

	-Andre

>   
>   Unfortunately some ports still use their own sleeps so, this commit
>   doesn't address the complete problem which is compounded by every
>   port that uses its own anticongestion mechanism.
>   
>   Discussed with:		asomers, feld
> 
> Modified:
>   stable/11/etc/periodic/daily/480.leapfile-ntpd
>   stable/11/etc/rc.d/ntpd
> Directory Properties:
>   stable/11/   (props changed)
> 
> Modified: stable/11/etc/periodic/daily/480.leapfile-ntpd
> ==============================================================================
> --- stable/11/etc/periodic/daily/480.leapfile-ntpd	Wed Nov  1 00:46:48 2017	(r325255)
> +++ stable/11/etc/periodic/daily/480.leapfile-ntpd	Wed Nov  1 01:03:44 2017	(r325256)
> @@ -13,8 +13,10 @@ fi
>  
>  case "$daily_ntpd_leapfile_enable" in
>      [Yy][Ee][Ss])
> -        anticongestion
> -        service ntpd onefetch
> +	if service ntpd oneneedfetch; then
> +	    anticongestion
> +	    service ntpd onefetch
> +	fi
>          ;;
>  esac
>  
> 
> Modified: stable/11/etc/rc.d/ntpd
> ==============================================================================
> --- stable/11/etc/rc.d/ntpd	Wed Nov  1 00:46:48 2017	(r325255)
> +++ stable/11/etc/rc.d/ntpd	Wed Nov  1 01:03:44 2017	(r325256)
> @@ -15,8 +15,9 @@ desc="Network Time Protocol daemon"
>  rcvar="ntpd_enable"
>  command="/usr/sbin/${name}"
>  pidfile="/var/run/${name}.pid"
> -extra_commands="fetch"
> +extra_commands="fetch needfetch"
>  fetch_cmd="ntpd_fetch_leapfile"
> +needfetch_cmd="ntpd_needfetch_leapfile"
>  start_precmd="ntpd_precmd"
>  
>  load_rc_config $name
> @@ -90,7 +91,7 @@ ntpd_init_leapfile() {
>  	fi
>  }
>  
> -ntpd_fetch_leapfile() {
> +ntpd_needfetch_leapfile() {
>  	local ntp_tmp_leapfile rc verbose
>  	
>  	if checkyesno ntp_leapfile_fetch_verbose; then
> @@ -122,6 +123,21 @@ ntpd_fetch_leapfile() {
>  	ntp_leap_fetch_date=$((ntp_leap_expiry-ntp_leapfile_expiry_seconds))
>  	if [ $(current_ntp_ts) -ge $ntp_leap_fetch_date ]; then
>  		$verbose Within ntp leapfile expiry limit, initiating fetch
> +		# Return code 0: ntp leapfile fetch needed
> +		return 0
> +	fi
> +	# Return code 1: ntp leapfile fetch not needed
> +	return 1
> +}
> +
> +ntpd_fetch_leapfile() {
> +	if checkyesno ntp_leapfile_fetch_verbose; then
> +		verbose=echo
> +	else
> +		verbose=:
> +	fi
> +
> +	if ntpd_needfetch_leapfile ; then
>  		for url in $ntp_leapfile_sources ; do
>  			$verbose fetching $url
>  			fetch $ntp_leapfile_fetch_opts -o $ntp_tmp_leapfile $url && break
> _______________________________________________
> svn-src-stable-11@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/svn-src-stable-11
> To unsubscribe, send any mail to "svn-src-stable-11-unsubscribe@freebsd.org"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20171128134449.GA2549>