Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 4 Jul 2018 14:01:57 +0000 (UTC)
From:      Ian Lepore <ian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   svn commit: r335948 - stable/11/etc/rc.d
Message-ID:  <201807041401.w64E1vfZ020660@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ian
Date: Wed Jul  4 14:01:56 2018
New Revision: 335948
URL: https://svnweb.freebsd.org/changeset/base/335948

Log:
  MFC r335575, r335786-r335787
  
  r335575:
  Use 'mv -f' in rc.d/ntpd to avoid spuriously halting the boot.
  
  The final 'mv' to install a fetched leap-list file can fail (due to a
  readonly fs, or schg flags, for example), and that leads to mv(1)
  prompting the user, stopping the boot process.  Instead, use mv -f
  to supress the prompting, and if verbose mode is on, emit a warning
  that the existing file cannot be replaced.
  
  PR:		219255
  
  r335786:
  Rename variable ntp_tmp_leapfile to have a leading underbar, to distinguish
  it from variables with similar names which are set in rc.conf.  This will
  make more sense as the script grows more similar-name local variables in
  some upcoming changes.
  
  r335787:
  When being verbose about various leapfile versions, also mention expiration.
  
  The expiration date is actually more of a version number than the version
  date, because expiration changes twice a year, whereas the version only
  changes when actual leap second events occur (except in USNO leapfiles,
  which inappropriately bump the version with every expiration date change).

Modified:
  stable/11/etc/rc.d/ntpd
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/etc/rc.d/ntpd
==============================================================================
--- stable/11/etc/rc.d/ntpd	Wed Jul  4 13:57:49 2018	(r335947)
+++ stable/11/etc/rc.d/ntpd	Wed Jul  4 14:01:56 2018	(r335948)
@@ -20,7 +20,7 @@ fetch_cmd="ntpd_fetch_leapfile"
 needfetch_cmd="ntpd_needfetch_leapfile"
 start_precmd="ntpd_precmd"
 
-ntp_tmp_leapfile="/var/run/ntpd.leap-seconds.list"
+_ntp_tmp_leapfile="/var/run/ntpd.leap-seconds.list"
 
 load_rc_config $name
 
@@ -56,7 +56,7 @@ ntpd_precmd()
 		( cd /dev ; /bin/pax -rw -pe clockctl "${ntpd_chrootdir}/dev" )
 	fi
 	ln -fs "${ntpd_chrootdir}/var/db/ntp.drift" /var/db/ntp.drift
-	ln -fs "${ntpd_chrootdir}${ntp_tmp_leapfile}" ${ntp_tmp_leapfile}
+	ln -fs "${ntpd_chrootdir}${_ntp_tmp_leapfile}" ${_ntp_tmp_leapfile}
 
 	#	Change run_rc_commands()'s internal copy of $ntpd_flags
 	#
@@ -106,8 +106,8 @@ ntpd_needfetch_leapfile() {
 	ntp_expiry_src=$(get_ntp_leapfile_expiry $ntp_src_leapfile)
 	ntp_ver_no_db=$(get_ntp_leapfile_ver $ntp_db_leapfile)
 	ntp_expiry_db=$(get_ntp_leapfile_expiry $ntp_db_leapfile)
-	$verbose ntp_src_leapfile version is $ntp_ver_no_src
-	$verbose ntp_db_leapfile version is $ntp_ver_no_db
+	$verbose ntp_src_leapfile version is $ntp_ver_no_src expires $ntp_expiry_src
+	$verbose ntp_db_leapfile version is $ntp_ver_no_db expires $ntp_expiry_db
 
 	if [ "$ntp_ver_no_src" -gt "$ntp_ver_no_db" -o \
 	     "$ntp_ver_no_src" -eq "$ntp_ver_no_db" -a \
@@ -140,15 +140,16 @@ ntpd_fetch_leapfile() {
 	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
+			fetch $ntp_leapfile_fetch_opts -o $_ntp_tmp_leapfile $url && break
 		done
-		ntp_ver_no_tmp=$(get_ntp_leapfile_ver $ntp_tmp_leapfile)
-		ntp_expiry_tmp=$(get_ntp_leapfile_expiry $ntp_tmp_leapfile)
+		ntp_ver_no_tmp=$(get_ntp_leapfile_ver $_ntp_tmp_leapfile)
+		ntp_expiry_tmp=$(get_ntp_leapfile_expiry $_ntp_tmp_leapfile)
 		if [ "$ntp_expiry_tmp" -gt "$ntp_expiry_db" -o \
 		     "$ntp_expiry_tmp" -eq "$ntp_expiry_db" -a \
 		     "$ntp_ver_no_tmp" -gt "$ntp_ver_no_db" ]; then
 			$verbose using $url as $ntp_db_leapfile
-			mv $ntp_tmp_leapfile $ntp_db_leapfile
+			mv -f $_ntp_tmp_leapfile $ntp_db_leapfile ||
+			    $verbose "warning: cannot replace $ntp_db_leapfile (read-only fs?)"
 		else
 			$verbose using existing $ntp_db_leapfile
 		fi



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