Soporte para segundos intercalares en FreeBSD

2019-06-01 17:52:59 por carlavilla.

[ Split HTML / Single HTML ]

1. Introducción

Un segundo intercalar es un ajuste de un segundo realizado en momentos específicos del año a UTC para sincronizar escalas de tiempo atómicas con variaciones en la rotación de la Tierra. Este artículo describe cómo FreeBSD interactúa con segundos intercalares.

En el momento de escribir estas líneas, el próximo segundo intercalar ocurrirá el 30 de junio del 2015 a las 23:59:60 UTC. Este segundo intercalar ocurrirá durante un día laboral para América del Norte y del Sur y la región Asia/Pacífico.

Los segundos intercalares son anunciados por el IERS en el Boletín C.

El comportamiento estándar de los segundos intercalares se describe en RFC 7164. Véase también time2posix(3).

2. Manejo por defecto de los segundos intercalares en FreeBSD

La manera más fácil de manejar segundos intercalares es con las reglas de tiempo de POSIX que FreeBSD utiliza por defecto, combinadas con NTP. Cuando ntpd(8) se esté ejecutando y el tiempo esté sincronizado con servidores remotos de NTP que manejen segundos intercalares correctamente, dicho segundo intercalar hará que el tiempo del sistema automáticamente repita el último segundo del día. Ningún otro ajuste es necesario.

Si los servidores remotos de NTP no manejan los segundos intercalares correctamente, ntpd(8) aumentará el tiempo en un segundo, después de que el servidor errático lo haya notado y haya saltado él mismo ese segundo.

Si no se usa NTP, se requerirá el ajuste manual del reloj del sistema una vez que el segundo intercalar haya pasado.

3. Precauciones

Los segundos intercalares se insertan en el mismo instante en todo el mundo: a medianoche según UTC. En Japón esto ocurre a media mañana, en el Pacífico al mediodía, en América es por la tarde-noche y en Europa por la noche.

Creemos y esperamos que FreeBSD, si se proporciona un servicio NTP correcto y estable, funcionará como se diseñó durante este segundo, como lo hizo durante los anteriores.

De todas formas, asumimos que prácticamente ninguna aplicación ha requerido información del kernel acerca del segundo intercalar. Nuestra experiencia es que, tal como está diseñado, el segundo intercalar es esencialmente una repetición del segundo antes del segundo intercalar, esto es una sorpresa para la mayoría de los programadores.

Otros sistemas operativos y computadoras pueden o no manejar el segundo intercalar de la misma forma que FreeBSD, y los sistemas sin un servicio NTP correcto y estable no sabrán nada sobre el segundo intercalar.

No es extraño que las computadoras fallen a causa del segundo intercalar, y la experiencia ha demostrado que una gran parte de los servidores públicos de NTP pueden manejar y anunciar incorrectamente el segundo intercalar.

Por favor, intente asegurarse de que nada horrible suceda debido al segundo intercalar.

4. Pruebas

Es posible probar si un segundo intercalar será usado. Debido a la naturaleza de NTP, la prueba puede funcionar hasta 24 horas antes del segundo intercalar. Algunas fuentes importantes de referencia de tiempo solo anuncian el segundo intercalar una hora antes del acontecimiento. Realice una consulta al demonio de NTP:

% ntpq -c 'rv 0 leap'

Una salida que incluya leap_add_sec indica el soporte para el segundo intercalar. Cuando falten más de 24 horas para el segundo intercalar, o cuando este haya pasado, leap_none será mostrado por pantalla.

5. Conclusión

En la práctica, los segundos intercalares no suelen ser un problema en FreeBSD. Esperamos que esta breve reseña ayude a clarificar qué esperar y cómo hacer que el segundo intercalar pase sin contratiempos.