Package: ntp Version: 1:4.2.6.p5+dfsg-7+deb8u2 Followup-For: Bug #794054 Hi all,
Kazuhiro's finding is true and this issue has been fixed in upstream: ** ntpd -x steps clock on leap second http://bugs.ntp.org/show_bug.cgi?id=2745 I can confirm this bug with adding debugging code to ntp code and also monitor the kernel's internal state with systemtap. Below is the patch I ported from RH's source code: ~~~ $ cat ntp-4.2.6p5-xleap.patch diff -uNr ntp-4.2.6.p5+dfsg.orig/html/miscopt.html ntp-4.2.6.p5+dfsg/html/miscopt.html --- ntp-4.2.6.p5+dfsg.orig/html/miscopt.html 2009-12-09 07:36:36.000000000 +0000 +++ ntp-4.2.6.p5+dfsg/html/miscopt.html 2016-10-23 13:44:44.822000703 +0000 @@ -88,7 +88,7 @@ is 0.128 s. If set to zero, step adjustments will never occur. Note: The kernel time discipline is disabled if the step threshold is set to zero or greater than 0.5 - s.</dd> + s and the threshold is applied also to leap second corrections.</dd> <dt><tt>stepout <i>stepout</i></tt></dt> <dd>Specifies the stepout threshold in seconds. The default without this command is 900 s. If set to zero, popcorn spikes will diff -uNr ntp-4.2.6.p5+dfsg.orig/html/ntpd.html ntp-4.2.6.p5+dfsg/html/ntpd.html --- ntp-4.2.6.p5+dfsg.orig/html/ntpd.html 2011-07-11 02:18:26.000000000 +0000 +++ ntp-4.2.6.p5+dfsg/html/ntpd.html 2016-10-23 13:46:28.386001420 +0000 @@ -147,7 +147,7 @@ <dt><tt>-V <i>variable</i></tt></dt> <dd>Add a system variable listed by default.</dd> <dt><tt>-x</tt></dt> - <dd>Normally, the time is slewed if the offset is less than the step threshold, which is 128 ms by default, and stepped if above the threshold. This option sets the threshold to 600 s, which is well within the accuracy window to set the clock manually. Note: Since the slew rate of typical Unix kernels is limited to 0.5 ms/s, each second of adjustment requires an amortization interval of 2000 s. Thus, an adjustment as much as 600 s will take almost 14 days to complete. This option can be used with the <tt>-g</tt> and <tt>-q</tt> options. See the <tt>tinker</tt> command for other options. Note: The kernel time discipline is disabled with this option.</dd> + <dd>Normally, the time is slewed if the offset is less than the step threshold, which is 128 ms by default, and stepped if above the threshold. This option sets the threshold to 600 s, which is well within the accuracy window to set the clock manually. Note: Since the slew rate of typical Unix kernels is limited to 0.5 ms/s, each second of adjustment requires an amortization interval of 2000 s. Thus, an adjustment as much as 600 s will take almost 14 days to complete. This option can be used with the <tt>-g</tt> and <tt>-q</tt> options. See the <tt>tinker</tt> command for other options. Note: The kernel time discipline is disabled with this option and the step threshold is applied also to leap second corrections.</dd> <dt><tt>--pccfreq <i>frequency</i></tt></dt> <dd>Substitute processor cycle counter for QueryPerformanceCounter unconditionally using the given frequency (in Hz). <tt>--pccfreq</tt> can be used on systems diff -uNr ntp-4.2.6.p5+dfsg.orig/ntpd/ntp_timer.c ntp-4.2.6.p5+dfsg/ntpd/ntp_timer.c --- ntp-4.2.6.p5+dfsg.orig/ntpd/ntp_timer.c 2011-12-01 02:55:17.000000000 +0000 +++ ntp-4.2.6.p5+dfsg/ntpd/ntp_timer.c 2016-10-23 13:48:15.578002161 +0000 @@ -338,7 +338,8 @@ sys_leap = LEAP_NOWARNING; sys_tai = leap_tai; #ifdef KERNEL_PLL - if (!(pll_control && kern_enable)) + if (clock_max < 1.0 && clock_max > 0.0 && + !(pll_control && kern_enable)) step_systime(-1.0); #else /* KERNEL_PLL */ #ifndef SYS_WINNT /* WinNT port has its own leap second handling */ ~~~ This behaviour of this patch should be the same as Kazuhiro's except for the log printing part. If the ntp 4.2.6.p5 version will be used during jessie's lifecycle, this issue should be escalated to IMPORTANT level as the leap second is coming. Best Regards, Flos -- System Information: Debian Release: 8.6 APT prefers stable-updates APT policy: (500, 'stable-updates'), (500, 'stable') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 3.16.0-4-amd64 (SMP w/2 CPU cores) Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages ntp depends on: ii adduser 3.113+nmu3 ii dpkg 1.17.27 ii libc6 2.19-18+deb8u6 ii libcap2 1:2.24-8 ii libedit2 3.1-20140620-2 ii libopts25 1:5.18.4-3 ii libssl1.0.0 1.0.1t-1+deb8u5 ii lsb-base 4.1+Debian13+nmu1 ii netbase 5.3 Versions of packages ntp recommends: ii perl 5.20.2-3+deb8u6 Versions of packages ntp suggests: pn ntp-doc <none> -- Configuration Files: /etc/ntp.conf changed [not included] -- no debconf information