[2263] in Kerberos_V5_Development
Re: leap seconds
daemon@ATHENA.MIT.EDU (Theodore Y. Ts'o)
Fri Feb 21 12:00:02 1997
Date: Fri, 21 Feb 1997 11:59:08 -0500
From: "Theodore Y. Ts'o" <tytso@MIT.EDU>
To: Ken Raeburn <raeburn@cygnus.com>
Cc: "Theodore Y. Ts'o" <tytso@MIT.EDU>, krbdev@MIT.EDU
In-Reply-To: Ken Raeburn's message of 21 Feb 1997 01:26:46 -0500,
<tx1n2syr7x5.fsf@cygnus.com>
I just asked around (Jeff being a good source for time-related trivia),
and it appears that the answer is that the official definition of UTC
time (which is what RFC-1510 and the particular form of the ASN.1
GeneralizedTime that we are using requires) *doesn't* take into account
leap seconds.
Given that they don't exist, UTC time is always monotonically
increasing, second by second, irregardless of whether the International
Earth Rotation Society adds a leap second or an anti-leap second. The
reason for this is that UTC time is used for navigational purposes, and
bad things happen to your calculations if the time is suddenly slewed
one way or the other.
Thus, if Debian is taking into account leap seconds, the correct thing
to do from a protocol point of view is to remove them again when
calculating the ASN.1 representation.
Jeff's other comment is that (in his opinion) the Debian people are
making a really big mistake by using a time package that takes into leap
seconds. He listed two reasons: first of all, none of the other Unix
systems are doing it, and being an outlier is going to cause all sorts
of confusion. (For example, coordinating logs when trying to analyze
security incidents.)
The second reason is that while we know where all of the leap seconds
that has happened in the past, we can't predict when the International
Earth Rotation Society will add a new leap second, or take a second
away. Hence, a time conversion function which claims to take into
account leap seconds will invariably go out of date, and so different
systems may have different ideas of local time depending on when the
last time they upgraded their base OS software. This will cause even
more confusion.
Anyway, given that there are some systems that introduce leap seconds
into their time functions, we're going to have to deal with it and
account for it. This may mean that we may need to duplicate the time
functions in lib/krb5/os. Fortunately, the fact that we don't need to
deal with any timezones except GMT should make that job a lot easier.
- Ted