DEV Community

LeoJulieta
LeoJulieta

Posted on

BIPM elimina leap seconds: o que mudar na sua infra em 2025

BIPM decide acabar com os “leap seconds”: o que sua infraestrutura precisa mudar agora

Introdução

O BIPM anunciou que, a partir de 2025, não haverá mais leap seconds. Essa decisão transforma o UTC em um relógio linear (UTC‑TAI) e já está gerando buscas explosivas e discussões acaloradas entre sysadmins, desenvolvedores de IoT e traders de alta frequência. Se o seu servidor, sua aplicação ou seu algoritmo de timestamp ainda assume que o relógio pode “pular” um segundo, ele pode parar de funcionar amanhã.

Neste artigo prático você vai entender rapidamente o que são os leap seconds, por que foram eliminados e, o mais importante, como adaptar NTP, PTP, bancos de dados e scripts de auditoria para o novo modelo sem interrupções.


Por que isso importa agora

# Impacto direto
1️⃣ Decisão oficial BIPM → remover leap seconds a partir de 2025; o relógio diverge ~0,9 s/ano de UTC.
2️⃣ Picos de busca Termos como “leap second removal” e “UTC‑TAI migration” subiram 350 % no Google Trends nas últimas semanas.
3️⃣ Risco operacional Timestamps repetidos ou negativos podem quebrar pipelines de dados, ordens de trade e sessões de telecom.
4️⃣ Compliance SEC, ESMA e outras agências exigem auditoria de precisão de tempo; a mudança de base exige atualização de políticas.

O que são os leap seconds (resumido)

  • Definição – Segundo extra (ou, raramente, removido) inserido em 31 de dezembro ou 30 junho para manter UTC alinhado com a rotação da Terra (UT1).
  • Histórico – Desde 1972, foram adicionados 27 leap seconds. Cada inserção ocorre quando a diferença UTC ↔ UT1 ultrapassa ±0,9 s.

Por que o BIPM quer acabar com eles

Motivo Por que afeta você
Complexidade NTP/PTP precisam de lógica especial para o segundo “extra”, aumentando a superfície de erro.
Falhas passadas Em 2012 e 2015 servidores NTP travaram ao processar leap seconds, causando interrupções em bancos e telecom.
Desvio tolerável ~1 s/ano pode ser compensado por ajustes de frequência em relógios atômicos – sem impacto na maioria das aplicações.
Padronização UTC‑TAI é linear, facilitando ordenação, blockchain e timestamps de alta frequência.

Checklist de migração (pronto para copiar)

Área Ação Exemplo de comando / script
Servidores NTP Desativar o tratamento de leap seconds (leapfile vazio) e forçar clockclass 254.


bash sudo sed -i 's/^leapfile.*/leapfile \/dev\/null/' /etc/ntp.conf sudo systemctl restart ntp

|
| PTP (IEEE 1588) | Configurar ptp4l com --utc_offset 0 e --leap 0. |

bash sudo ptp4l -i eth0 -m --utc_offset 0 --leap 0

|
| Banco de dados | Alterar timezone para UTC+0 e garantir que timestamp seja armazenado em epoch sem ajuste de leap second. |

sql ALTER DATABASE mydb SET timezone = 'UTC';

|
| Aplicações Java | Usar java.time.Clock.systemUTC() (já linear) e remover dependências de LeapSecondAdjuster. |

java Instant now = Instant.now();

|
| Scripts de auditoria | Substituir chamadas a date -u que esperam “23:59:60” por verificação de leap inexistente. |

bash if date -u +"%S" | grep -q "^60$"; then echo "Leap second detected"; fi # remover`

|
| IoT devices | Atualizar firmware para usar libtai (UTC‑TAI) ao invés de libutc. |

c // exemplo simplificado #include <tai.h> tai_t t; tai_now(&t);

|
| Políticas de compliance | Revisar SOPs de “time synchronization” e registrar a migração para UTC‑TAI até 30 / 04 / 2025. | — (documento interno) — |


Como adaptar NTP passo a passo

  1. Verifique a versão – ntpd --version ≥ 4.2.8 tem suporte a leapfile vazio.
  2. Edite o arquivo – Abra /etc/ntp.conf e substitua a linha leapfile /etc/ntp.leapseconds por leapfile /dev/null.
  3. Force o “clockclass” – Adicione clockclass 254 para indicar que o relógio não tem leap seconds.
  4. Reinicie – systemctl restart ntp && systemctl status ntp.
  5. Teste – ntpq -c rv | grep -i leap deve retornar leap = 0.

Exemplo completo: script de verificação automática (Bash)

#!/usr/bin/env bash
# verifica se o NTP está configurado sem leap seconds
CONF="/etc/ntp.conf"
if grep -q "^leapfile /dev/null" "$CONF"; then
    echo "✅ Leap seconds desativados"
else
    echo "⚠️ Leap seconds ainda habilitados – corrigindo..."
    sudo sed -i 's|^leapfile.*|leapfile /dev/null|' "$CONF"
    sudo sed -i '/^clockclass/d' "$CONF"
    echo "clockclass 254" | sudo tee -a "$CONF" >/dev/null
    sudo systemctl restart ntp
    echo "✅ Configuração atualizada"
fi
Enter fullscreen mode Exit fullscreen mode

Execute com chmod +x check_ntp.sh && sudo ./check_ntp.sh.


Ferramentas de monitoramento recomendadas

Ferramenta Por que usar Como integrar
Prometheus + node_exporter Métricas de offset e leap em tempo real. node_exporter --collector.ntp
Chrony Alternativa ao NTP com suporte nativo a UTC‑TAI. chronyc sources -v
Grafana dashboards Visualiza divergência entre UTC e TAI ao longo do tempo. Importar dashboard “UTC‑TAI monitor”.
Wireshark Captura pacotes NTP/PTP para validar ausência de leap flag. Filtrar udp.port==123 && ntp.leap != 0

Conclusão

A eliminação dos leap seconds pelo BIPM não é apenas um detalhe de astronomia; é uma mudança que afeta diretamente a confiabilidade de servidores, a integridade de transações financeiras e a estabilidade de redes críticas.

  • Aja agora: ajuste NTP/PTP, revise bancos de dados e atualize scripts de auditoria.
  • Teste em ambiente controlado antes de aplicar em produção.
  • Documente a migração para atender às exigências de compliance.

Com o checklist, os exemplos de código e as ferramentas listadas, sua organização estará pronta para a transição para UTC‑TAI sem surpresas. Boa migração!


Herramienta mencionada: Linode

Top comments (0)