Um leap second é o ajuste de um segundo feito em momentos específicos do ano para sincronizar a escala atômica de tempo do UTC com a variação da rotação da terra. Esse artigo descreve como o FreeBSD interage com o leap seconds.
No momento em que este artigo está sendo escrito, a próxima ocorrência do leap second irá acontecer em 30 de junho de 2015 as 23:59:60 UTC. Esse leap second ira ocorrer durante um dia útil para as Américas do Norte e do Sul e a região da Ásia/Pacifico.
Leap Seconds são anunciados pelo IERS no Bulletin C.
O comportamento padrão do leap Seconds é descrito na RFC 7164. Veja também em time2posix(3).
A maneira mais fácil de manipular o leap seconds é com a regra de tempo POSIX que é utilizada por padrão pelo FreeBSD, combinada com o NTP. Quando o ntpd(8) está sendo executado e o tempo é sincronizado com os servidores NTP de upstream que gerenciam o leap seconds corretamente, o leap second causará a repetição do último segundo do dia de forma automática. Nenhum outro ajuste será necessário.
Se os servidores de NTP upstream não gerenciarem o leap seconds corretamente, o ntpd(8) irá avançar em um segundo após o servidor se corrigir.
Se o NTP não está sendo utilizado, será necessário um ajuste manual do relógio do sistema apois o leap seconds ter passado.
Os Leap seconds são inseridos no mesmo instante em todo o mundo a meia noite UTC. No Japão será no meio da manhã e no Pacífico ao meio dia, nas Américas a tarde e na Europa à noite.
Nos acreditamos e esperamos que o FreeBSD, se provido de um serviço de NTP estável, irá funcionar como foi especificado durante o leap second, como aconteceu nos anteriores.
Enrtetanto, nós alertamos que praticamente nenhum aplicativo nunca questionou o kernel sobre leap seconds. Nossa experiência é que, como projetado, leap seconds são, essencialmente, a repetição do último segundo antes do leap second, e isso é uma surpresa para a maioria dos programadores.
Outros sistemas operacionais e computadores podem ou não manipular o leap seconds da mesma maneira que o FreeBSD e sistemas sem um serviço correto e estável de NTP não terão conhecimento algum sobre a ocorrência de leap seconds.
Não é inétido que os computadores travem por causa do leap seconds, e a experiência mostra que uma grande parte de todos os servidores públicos de NTP podem manipular e anunciar o leap seconds de forma incorreta.
Por favor, tente garantir que nada horrível acontecerá por causa do leap seconds.
É possível testar se um leap seconds será utilizado. Devido a natureza do NTP, o teste deve funcionar até 24 horas antes do lead seconds. Algumas da principais fontes de referência de tempo somente anunciam o leap seconds uma hora antes do evento. Consulte o daemon do NTP:
%
ntpq -c 'rv 0 leap'
Uma saída que inclua leap_add_sec
indica o suporte adequado ao leap second. Antes de 24 horas até a ocorrência do leap second, ou depois dele já ter ocorrido, a saída do comando irá mostrar leap_none
.