Bugzilla will be upgraded to version 5.0. The upgrade date is tentatively scheduled for 2 December 2018, pending final testing and feedback.
Bug 1242553 - ntpd doesn't reset system leap status when disarming leap timer
ntpd doesn't reset system leap status when disarming leap timer
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: ntp (Show other bugs)
7.1
Unspecified Unspecified
high Severity high
: rc
: ---
Assigned To: Miroslav Lichvar
Jakub Prokes
:
Depends On:
Blocks: 1203710 1313485 1243034 1289025 1295829
  Show dependency treegraph
 
Reported: 2015-07-13 10:57 EDT by Miroslav Lichvar
Modified: 2016-11-14 11:00 EST (History)
10 users (show)

See Also:
Fixed In Version: ntp-4.2.6p5-24.el7
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1243034 (view as bug list)
Environment:
Last Closed: 2016-11-03 15:31:43 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
fix resetting of leap status (489 bytes, patch)
2015-07-23 03:33 EDT, Miroslav Lichvar
no flags Details | Diff


External Trackers
Tracker ID Priority Status Summary Last Updated
Network Time Protocol 2246 None None None Never
Red Hat Knowledge Base (Solution) 1530053 None None None 2016-11-14 10:28 EST
Red Hat Product Errata RHSA-2016:2583 normal SHIPPED_LIVE Moderate: ntp security and bug fix update 2016-11-03 08:08:36 EDT

  None (edit)
Description Miroslav Lichvar 2015-07-13 10:57:06 EDT
Description of problem:
When the system leap status is set in the last day of the month to insert/delete a leap second and the upstream NTP sources later in that day fail to reach majority on the leap second, the leap second timer will be disarmed, but the system leap status will not be reset and the leap second will still be announced to NTP clients.

If not using the -x option, the kernel will step the clock back by one second at midnight even when the sources no longer agree there is a leap second in that day. ntpd will keep setting the kernel leap status and the next day the clock will be stepped again. This incorrect step will be corrected later by forward step, which will finally reset the system status to the normal non-leap value.

If using the -x option, the ntpd instance will continue to announce the leap second to its clients until the service is restarted and the clients may apply it every day/month/6 months depending on their implementation. 

Version-Release number of selected component (if applicable):
ntp-4.2.6p5-20.el7

How reproducible:
always

Steps to Reproduce:
1. configure ntpd with a server that simulates a leap second on the last day of a month
2. wait until ntpq -c rv reports leap=01
3. turn the leap status on the server off
4. monitor ntpq -c rv output

Actual results:
leap not reset to 00

Expected results:
leap reset to 00

Additional info:
Comment 1 Miroslav Lichvar 2015-07-14 08:52:12 EDT
Actually, the kernel doesn't seem to apply a new leap second until the TIME_WAIT state is cleared by setting a non-INS/DEL status by adjtimex(), which means that even ntpd not configured with -x that went through the leap second with disarmed leap timer could be stuck in the leap state and report it to its clients forever.
Comment 4 Miroslav Lichvar 2015-07-23 03:33:29 EDT
Created attachment 1055196 [details]
fix resetting of leap status
Comment 10 errata-xmlrpc 2016-11-03 15:31:43 EDT
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHSA-2016-2583.html

Note You need to log in before you can comment on or make changes to this bug.