.@ Tony Finch – blog

For several years I have published a leap second table in the DNS. My version(s) of the leap second table are (as far as I know) unique:

My leap second table is sod-all use

The problem with leap seconds is not how they are published, but the tools that (fail to) disseminate and use the leap second table.

NTP is a big problem: the traditional NTP implementation is designed to choose and fixate on one server out of an ensemble of possible upstreams. Leap seconds are not part of the decision process of choosing which upstream is correct.

As a result, NTP will trust an upstream that is good at keeping time (maybe it is in a room with good temperature stability), but misconfigured for leap seconds, so when a leap second comes along NTP gets surprised by a sudden one-second offset.

Leap seconds should not be a surprise

There at least two plausible ways to avoid being surprised:

How to fix leap seconds

I am not working on this

But I will happily rant about precise time keeping at the Cambridge Beer Festival to anyone who talks about their project to refurbish a rubidium frequency standard [not a hypothetical example] and I will try not to bore people who are not time nuts….

I thought that this week I might work on polishing my spec for compact leap second tables, or writing an implementation in Rust, but I have decided that tackling the oppressive todo list of procrastinatory doom will make me happier.