The purpose of this test is to verify leap second operation with ntp. This is done by artificially setting the leap second offset in gpsd. ntp is not modified. Software levels: gpsd - 3.16-m2.9 + the Aug 31 test patch ntp - 4.2.8p9-r0.mlinux3.0. Release candidate for mLinux 4.0 ntpd leap second test gpsd artificially causes a leap second on Aug 31, 2017 23:59:59 UTC. The patch for this test is leap2017Aug31.patch. This patch replaces 0006-ubxtimelps.patch. Kernel Log: 2017-07-31T18:50:02.012018-05:00 leaptest CROND[5205]: (root) CMD (/usr/sbin/logrotate /etc/logrotate.conf) 2017-07-31T18:55:01.119140-05:00 leaptest CROND[5223]: (root) CMD (/usr/sbin/logrotate /etc/logrotate.conf) 2017-07-31T18:59:59.016393-05:00 leaptest kernel: Clock: inserting leap second 23:59:60 UTC 2017-07-31T19:00:01.215873-05:00 leaptest CROND[5240]: (root) CMD (/usr/sbin/logrotate /etc/logrotate.conf) 2017-07-31T19:00:07.381218-05:00 leaptest ntpd[501]: kernel reports leap second has occurred 2017-07-31T19:00:07.381528-05:00 leaptest ntpd[501]: kernel reports leap second has occurred 2017-07-31T19:05:01.313170-05:00 leaptest CROND[5258]: (root) CMD (/usr/sbin/logrotate /etc/logrotate.conf) Time log from user space. 18:59:59 repeats twice 19:00:00 appears only once.: 2017-07-31T18:59:57.855895-05:00 leaptest CTST: epoch: 1501545597.855 boot: 442607.123 2017-07-31T18:59:58.106318-05:00 leaptest CTST: epoch: 1501545598.106 boot: 442607.373 2017-07-31T18:59:58.356758-05:00 leaptest CTST: epoch: 1501545598.356 boot: 442607.624 2017-07-31T18:59:58.607171-05:00 leaptest CTST: epoch: 1501545598.606 boot: 442607.874 2017-07-31T18:59:58.857621-05:00 leaptest CTST: epoch: 1501545598.857 boot: 442608.124 2017-07-31T18:59:59.108072-05:00 leaptest CTST: epoch: 1501545599.107 boot: 442608.375 2017-07-31T18:59:59.358506-05:00 leaptest CTST: epoch: 1501545599.358 boot: 442608.625 2017-07-31T18:59:59.608952-05:00 leaptest CTST: epoch: 1501545599.608 boot: 442608.876 2017-07-31T18:59:59.859364-05:00 leaptest CTST: epoch: 1501545599.859 boot: 442609.126 2017-07-31T18:59:59.109780-05:00 leaptest CTST: epoch: 1501545599.109 boot: 442609.377 2017-07-31T18:59:59.360195-05:00 leaptest CTST: epoch: 1501545599.359 boot: 442609.627 2017-07-31T18:59:59.610608-05:00 leaptest CTST: epoch: 1501545599.610 boot: 442609.877 2017-07-31T18:59:59.861023-05:00 leaptest CTST: epoch: 1501545599.860 boot: 442610.128 2017-07-31T19:00:00.111461-05:00 leaptest CTST: epoch: 1501545600.111 boot: 442610.378 2017-07-31T19:00:00.361916-05:00 leaptest CTST: epoch: 1501545600.361 boot: 442610.629 2017-07-31T19:00:00.612329-05:00 leaptest CTST: epoch: 1501545600.612 boot: 442610.879 2017-07-31T19:00:00.862825-05:00 leaptest CTST: epoch: 1501545600.862 boot: 442611.130 2017-07-31T19:00:01.113251-05:00 leaptest CTST: epoch: 1501545601.112 boot: 442611.380 2017-07-31T19:00:01.363695-05:00 leaptest CTST: epoch: 1501545601.363 boot: 442611.630 2017-07-31T19:00:01.614114-05:00 leaptest CTST: epoch: 1501545601.613 boot: 442611.881 2017-07-31T19:00:01.864524-05:00 leaptest CTST: epoch: 1501545601.864 boot: 442612.131 Leap second flag set artifically by gpsd, and noticed by ntp (leap=01 for SHM(0) and SHM(2) and leap_armed): 2017-07-31T18:59:22.952281-05:00 leaptest ntpstatus.sh: ========================================================== 2017-07-31T18:59:22.962756-05:00 leaptest ntpstatus.sh: ntpq -c lassoc -c mrv &1 &999 leap,srcadr,stratum 2017-07-31T18:59:22.964152-05:00 leaptest ntpstatus.sh: ========================================================== 2017-07-31T18:59:23.130829-05:00 leaptest ntpstatus.sh: ind assid status conf reach auth condition last_event cnt 2017-07-31T18:59:23.131062-05:00 leaptest ntpstatus.sh: =========================================================== 2017-07-31T18:59:23.131258-05:00 leaptest ntpstatus.sh: 1 18654 943a yes yes none candidate sys_peer 3 2017-07-31T18:59:23.131451-05:00 leaptest ntpstatus.sh: 2 18655 9649 yes yes none sys.peer leap_armed 4 2017-07-31T18:59:23.131647-05:00 leaptest ntpstatus.sh: 3 18656 8011 yes no none reject mobilize 1 2017-07-31T18:59:23.131840-05:00 leaptest ntpstatus.sh: srcadr=SHM(0), leap=01, stratum=0 2017-07-31T18:59:23.132031-05:00 leaptest ntpstatus.sh: srcadr=SHM(2), leap=01, stratum=0 2017-07-31T18:59:23.132220-05:00 leaptest ntpstatus.sh: srcadr=LOCAL(0), leap=11, stratum=14 2017-07-31T18:59:23.138000-05:00 leaptest ntpstatus.sh: ========================================================== 2017-07-31T18:59:23.138206-05:00 leaptest ntpstatus.sh: ntpq -p 2017-07-31T18:59:23.138404-05:00 leaptest ntpstatus.sh: ========================================================== 2017-07-31T18:59:23.434429-05:00 leaptest ntpstatus.sh: remote refid st t when poll reach delay offset jitter 2017-07-31T18:59:23.434666-05:00 leaptest ntpstatus.sh: ============================================================================== 2017-07-31T18:59:23.434863-05:00 leaptest ntpstatus.sh: +SHM(0) .GPS. 0 l 20 64 377 0.000 6.410 1.265 2017-07-31T18:59:23.435055-05:00 leaptest ntpstatus.sh: *SHM(2) .PPS. 0 l 19 64 377 0.000 0.062 0.008 2017-07-31T18:59:23.435249-05:00 leaptest ntpstatus.sh: LOCAL(0) .LOCL. 14 l - 32 0 0.000 0.000 0.000 2017-07-31T19:00:22.459905-05:00 leaptest ntpstatus.sh: ========================================================== 2017-07-31T19:00:22.460141-05:00 leaptest ntpstatus.sh: ntpq -c lassoc -c mrv &1 &999 leap,srcadr,stratum 2017-07-31T19:00:22.460343-05:00 leaptest ntpstatus.sh: ========================================================== 2017-07-31T19:00:22.618627-05:00 leaptest ntpstatus.sh: ind assid status conf reach auth condition last_event cnt 2017-07-31T19:00:22.618857-05:00 leaptest ntpstatus.sh: =========================================================== 2017-07-31T19:00:22.619057-05:00 leaptest ntpstatus.sh: 1 18654 943a yes yes none candidate sys_peer 3 2017-07-31T19:00:22.619252-05:00 leaptest ntpstatus.sh: 2 18655 9649 yes yes none sys.peer leap_armed 4 2017-07-31T19:00:22.619444-05:00 leaptest ntpstatus.sh: 3 18656 8011 yes no none reject mobilize 1 2017-07-31T19:00:22.619634-05:00 leaptest ntpstatus.sh: srcadr=SHM(0), leap=01, stratum=0 2017-07-31T19:00:22.619824-05:00 leaptest ntpstatus.sh: srcadr=SHM(2), leap=01, stratum=0 2017-07-31T19:00:22.620016-05:00 leaptest ntpstatus.sh: srcadr=LOCAL(0), leap=11, stratum=14 2017-07-31T19:00:22.628414-05:00 leaptest ntpstatus.sh: ========================================================== 2017-07-31T19:00:22.628654-05:00 leaptest ntpstatus.sh: ntpq -p 2017-07-31T19:00:22.628868-05:00 leaptest ntpstatus.sh: ========================================================== 2017-07-31T19:00:22.922779-05:00 leaptest ntpstatus.sh: remote refid st t when poll reach delay offset jitter 2017-07-31T19:00:22.924191-05:00 leaptest ntpstatus.sh: ============================================================================== 2017-07-31T19:00:22.925595-05:00 leaptest ntpstatus.sh: +SHM(0) .GPS. 0 l 16 64 377 0.000 7.369 0.661 2017-07-31T19:00:22.927000-05:00 leaptest ntpstatus.sh: *SHM(2) .PPS. 0 l 15 64 377 0.000 0.059 0.008 2017-07-31T19:00:22.928402-05:00 leaptest ntpstatus.sh: LOCAL(0) .LOCL. 14 l - 32 0 0.000 0.000 0.000 2017-07-31T19:01:22.942937-05:00 leaptest ntpstatus.sh: ========================================================== 2017-07-31T19:01:22.943171-05:00 leaptest ntpstatus.sh: ntpq -c lassoc -c mrv &1 &999 leap,srcadr,stratum 2017-07-31T19:01:22.943371-05:00 leaptest ntpstatus.sh: ========================================================== 2017-07-31T19:01:23.118319-05:00 leaptest ntpstatus.sh: ind assid status conf reach auth condition last_event cnt 2017-07-31T19:01:23.118551-05:00 leaptest ntpstatus.sh: =========================================================== 2017-07-31T19:01:23.118750-05:00 leaptest ntpstatus.sh: 1 18654 943a yes yes none candidate sys_peer 3 2017-07-31T19:01:23.118943-05:00 leaptest ntpstatus.sh: 2 18655 9649 yes yes none sys.peer leap_armed 4 2017-07-31T19:01:23.119137-05:00 leaptest ntpstatus.sh: 3 18656 8011 yes no none reject mobilize 1 2017-07-31T19:01:23.119330-05:00 leaptest ntpstatus.sh: srcadr=SHM(0), leap=01, stratum=0 2017-07-31T19:01:23.119520-05:00 leaptest ntpstatus.sh: srcadr=SHM(2), leap=01, stratum=0 2017-07-31T19:01:23.119710-05:00 leaptest ntpstatus.sh: srcadr=LOCAL(0), leap=11, stratum=14 2017-07-31T19:01:23.128565-05:00 leaptest ntpstatus.sh: ========================================================== 2017-07-31T19:01:23.128809-05:00 leaptest ntpstatus.sh: ntpq -p 2017-07-31T19:01:23.129026-05:00 leaptest ntpstatus.sh: ========================================================== 2017-07-31T19:01:23.417707-05:00 leaptest ntpstatus.sh: remote refid st t when poll reach delay offset jitter 2017-07-31T19:01:23.417942-05:00 leaptest ntpstatus.sh: ============================================================================== 2017-07-31T19:01:23.418140-05:00 leaptest ntpstatus.sh: +SHM(0) .GPS. 0 l 13 64 377 0.000 1007.48 1000.36 2017-07-31T19:01:23.418337-05:00 leaptest ntpstatus.sh: *SHM(2) .PPS. 0 l 12 64 377 0.000 1000.05 999.994 2017-07-31T19:01:23.418529-05:00 leaptest ntpstatus.sh: LOCAL(0) .LOCL. 14 l - 32 0 0.000 0.000 0.000 2017-07-31T19:02:23.442898-05:00 leaptest ntpstatus.sh: ========================================================== 2017-07-31T19:02:23.443131-05:00 leaptest ntpstatus.sh: ntpq -c lassoc -c mrv &1 &999 leap,srcadr,stratum 2017-07-31T19:02:23.443332-05:00 leaptest ntpstatus.sh: ========================================================== 2017-07-31T19:02:23.617413-05:00 leaptest ntpstatus.sh: ind assid status conf reach auth condition last_event cnt Offset goes to one second, because there was no leap second: 2017-07-31T19:00:22.618857-05:00 leaptest ntpstatus.sh: =========================================================== 2017-07-31T19:00:22.619057-05:00 leaptest ntpstatus.sh: 1 18654 943a yes yes none candidate sys_peer 3 2017-07-31T19:00:22.619252-05:00 leaptest ntpstatus.sh: 2 18655 9649 yes yes none sys.peer leap_armed 4 2017-07-31T19:00:22.619444-05:00 leaptest ntpstatus.sh: 3 18656 8011 yes no none reject mobilize 1 2017-07-31T19:00:22.619634-05:00 leaptest ntpstatus.sh: srcadr=SHM(0), leap=01, stratum=0 2017-07-31T19:00:22.619824-05:00 leaptest ntpstatus.sh: srcadr=SHM(2), leap=01, stratum=0 2017-07-31T19:00:22.620016-05:00 leaptest ntpstatus.sh: srcadr=LOCAL(0), leap=11, stratum=14 2017-07-31T19:00:22.628414-05:00 leaptest ntpstatus.sh: ========================================================== 2017-07-31T19:00:22.628654-05:00 leaptest ntpstatus.sh: ntpq -p 2017-07-31T19:00:22.628868-05:00 leaptest ntpstatus.sh: ========================================================== 2017-07-31T19:00:22.922779-05:00 leaptest ntpstatus.sh: remote refid st t when poll reach delay offset jitter 2017-07-31T19:00:22.924191-05:00 leaptest ntpstatus.sh: ============================================================================== 2017-07-31T19:00:22.925595-05:00 leaptest ntpstatus.sh: +SHM(0) .GPS. 0 l 16 64 377 0.000 7.369 0.661 2017-07-31T19:00:22.927000-05:00 leaptest ntpstatus.sh: *SHM(2) .PPS. 0 l 15 64 377 0.000 0.059 0.008 2017-07-31T19:00:22.928402-05:00 leaptest ntpstatus.sh: LOCAL(0) .LOCL. 14 l - 32 0 0.000 0.000 0.000 2017-07-31T19:01:22.942937-05:00 leaptest ntpstatus.sh: ========================================================== 2017-07-31T19:01:22.943171-05:00 leaptest ntpstatus.sh: ntpq -c lassoc -c mrv &1 &999 leap,srcadr,stratum 2017-07-31T19:01:22.943371-05:00 leaptest ntpstatus.sh: ========================================================== 2017-07-31T19:01:23.118319-05:00 leaptest ntpstatus.sh: ind assid status conf reach auth condition last_event cnt 2017-07-31T19:01:23.118551-05:00 leaptest ntpstatus.sh: =========================================================== 2017-07-31T19:01:23.118750-05:00 leaptest ntpstatus.sh: 1 18654 943a yes yes none candidate sys_peer 3 2017-07-31T19:01:23.118943-05:00 leaptest ntpstatus.sh: 2 18655 9649 yes yes none sys.peer leap_armed 4 2017-07-31T19:01:23.119137-05:00 leaptest ntpstatus.sh: 3 18656 8011 yes no none reject mobilize 1 2017-07-31T19:01:23.119330-05:00 leaptest ntpstatus.sh: srcadr=SHM(0), leap=01, stratum=0 2017-07-31T19:01:23.119520-05:00 leaptest ntpstatus.sh: srcadr=SHM(2), leap=01, stratum=0 2017-07-31T19:01:23.119710-05:00 leaptest ntpstatus.sh: srcadr=LOCAL(0), leap=11, stratum=14 2017-07-31T19:01:23.128565-05:00 leaptest ntpstatus.sh: ========================================================== 2017-07-31T19:01:23.128809-05:00 leaptest ntpstatus.sh: ntpq -p 2017-07-31T19:01:23.129026-05:00 leaptest ntpstatus.sh: ========================================================== 2017-07-31T19:01:23.417707-05:00 leaptest ntpstatus.sh: remote refid st t when poll reach delay offset jitter 2017-07-31T19:01:23.417942-05:00 leaptest ntpstatus.sh: ============================================================================== 2017-07-31T19:01:23.418140-05:00 leaptest ntpstatus.sh: +SHM(0) .GPS. 0 l 13 64 377 0.000 1007.48 1000.36 2017-07-31T19:01:23.418337-05:00 leaptest ntpstatus.sh: *SHM(2) .PPS. 0 l 12 64 377 0.000 1000.05 999.994 2017-07-31T19:01:23.418529-05:00 leaptest ntpstatus.sh: LOCAL(0) .LOCL. 14 l - 32 0 0.000 0.000 0.000 2017-07-31T19:02:23.442898-05:00 leaptest ntpstatus.sh: ========================================================== 2017-07-31T19:02:23.443131-05:00 leaptest ntpstatus.sh: ntpq -c lassoc -c mrv &1 &999 leap,srcadr,stratum 2017-07-31T19:02:23.443332-05:00 leaptest ntpstatus.sh: ========================================================== 2017-07-31T19:02:23.617413-05:00 leaptest ntpstatus.sh: ind assid status conf reach auth condition last_event cnt Leap second flag is clear, leap_armed is removed so no leap second on Aug 1, 2017: 2017-07-31T19:38:42.630432-05:00 leaptest ntpstatus.sh: ntpq -c lassoc -c mrv &1 &999 leap,srcadr,stratum 2017-07-31T19:38:42.630636-05:00 leaptest ntpstatus.sh: ========================================================== 2017-07-31T19:38:42.791369-05:00 leaptest ntpstatus.sh: ind assid status conf reach auth condition last_event cnt 2017-07-31T19:38:42.791605-05:00 leaptest ntpstatus.sh: =========================================================== 2017-07-31T19:38:42.791803-05:00 leaptest ntpstatus.sh: 1 18654 945a yes yes none candidate sys_peer 5 2017-07-31T19:38:42.791994-05:00 leaptest ntpstatus.sh: 2 18655 966a yes yes none sys.peer sys_peer 6 2017-07-31T19:38:42.792189-05:00 leaptest ntpstatus.sh: 3 18656 8033 yes no none reject unreachable 3 2017-07-31T19:38:42.792379-05:00 leaptest ntpstatus.sh: srcadr=SHM(0), leap=00, stratum=0 2017-07-31T19:38:42.802875-05:00 leaptest ntpstatus.sh: srcadr=SHM(2), leap=00, stratum=0 2017-07-31T19:38:42.804254-05:00 leaptest ntpstatus.sh: srcadr=LOCAL(0), leap=00, stratum=14