Pular para o conteúdo

Os segundos intercalares estão chegando ao fim

Ver no idioma original →

Autoria: Better Stack · Assistir no YouTube

Vídeo de autoria do canal indicado, não da IANIA; todos os direitos pertencem ao criador. Transcrição, resumo e tradução gerados automaticamente; o conteúdo no idioma original é preservado na versão em idioma original.

Idioma original: inglês

Vídeo original: Leap Seconds Are Ending #cloudflare #leapsecond #programming · Canal: Better Stack · 02:09 · Assistir no YouTube

Tópicos: Engenharia de software com IA, Infraestrutura e hardware de IA

Após mais de 50 anos, foi decidido abolir os segundos intercalares, usados para alinhar o UTC à rotação irregular da Terra. A repetição ou o retrocesso de um segundo já causou falhas em sistemas, incluindo quedas do Reddit e do DNS da Cloudflare. Google e Meta contornam o salto ajustando gradualmente seus relógios, uma prática chamada de smear. A partir de 20 de maio de 2027, o UTC deixará de adicionar ou pular segundos, embora o impacto de remover um segundo ainda não tenha sido testado em grande escala.

  • Desde 1972, foram adicionados 27 segundos intercalares ao UTC para compensar a rotação irregular da Terra.
  • O Unix time considera que todos os dias têm exatamente 86.400 segundos, e muitos computadores não conseguem representar 23:59:60.
  • No Linux, o segundo intercalar pode fazer o relógio voltar um segundo, repetindo 23:59:59.
  • Em 2012, um bug no kernel do Linux fez programas acordarem repetidamente e consumirem toda a CPU, contribuindo para a queda do Reddit.
  • Em 2017, um retrocesso do relógio causou uma duração negativa em código Go usado pela Cloudflare, levando a uma falha no DNS.
  • Google e Meta usam smear: desaceleram ligeiramente seus relógios por algumas horas para evitar um salto repentino.
  • A partir de 20 de maio de 2027, o UTC não terá segundos adicionados nem removidos.
  • A possibilidade de remover um segundo foi apontada como uma razão para abolir o sistema; o vídeo menciona uma chance de 30% de isso ser necessário até 2035.
  • A remoção de um segundo nunca foi realizada, e seu impacto em grande escala ainda não foi testado.
Início Capítulo Resumo
00:00 O que é um segundo intercalar O vídeo explica por que os segundos intercalares foram adicionados ao UTC e como são representados nos relógios.
00:32 Falhas causadas pelo relógio voltando O retrocesso do relógio pode quebrar software, como aconteceu com o Linux e o Reddit em 2012.
01:04 A falha da Cloudflare e o smear Uma duração negativa contribuiu para a falha de DNS da Cloudflare, enquanto Google e Meta evitam saltos com smear.
01:36 O fim dos segundos intercalares A decisão define 20 de maio de 2027 como o início do UTC sem segundos adicionados ou removidos.
02:09 O risco de remover um segundo O vídeo destaca que a remoção nunca foi feita e pergunta aos espectadores sobre experiências com bugs de tempo.

Isso já aconteceu 27 vezes. — 00:00

Do ponto de vista do seu código, o tempo realmente voltou. — 00:32

A causa raiz foi simplesmente acreditar que o tempo não pode voltar. — 01:04

A partir de 20 de maio de 2027, o UTC seguirá sem segundos adicionados ou removidos. — 01:36

O impacto de remover um segundo nunca foi testado em grande escala. — 02:09

  • leap second (conceito): Segundo acrescentado ao UTC para compensar a diferença entre o tempo atômico e a rotação da Terra.
  • UTC (conceito): Escala de tempo coordenada que recebe segundos intercalares para acompanhar a rotação irregular da Terra.
  • Unix time (conceito): Sistema de contagem de tempo que pressupõe que cada dia tem exatamente 86.400 segundos.
  • Linux kernel (conceito): O kernel do Linux teve um bug associado ao tratamento de um segundo intercalar em 2012.
  • Reddit (empresa): O Reddit ficou fora do ar por 30 a 40 minutos após uma falha relacionada ao segundo intercalar em 2012.
  • Cloudflare (empresa): A Cloudflare sofreu uma falha de DNS em 2017 quando uma mudança no relógio gerou uma duração negativa em seu código Go.
  • Google (empresa): O Google evita o salto do segundo intercalar desacelerando ligeiramente seus relógios durante algumas horas.
  • Meta (empresa): A Meta usa smear para evitar um salto repentino do relógio e afirmou que a remoção de um segundo não foi testada em grande escala.
  • General Conference of Weights and Measures (conceito): Conferência que decidiu abolir os segundos intercalares e fixou a data de início da mudança.
  • smear (conceito): Ajuste gradual do relógio por algumas horas para distribuir o efeito de um segundo intercalar sem produzir um salto.

00:00 Depois de mais de 50 anos, estão acabando com o segundo intercalar, que é o segundo exato que, certa vez, derrubou o Reddit e quebrou o DNS da Cloudflare. Para relembrar rapidamente: nossos relógios funcionam com base no tempo atômico, mas a Terra não gira com velocidade perfeitamente constante. Por isso, desde 1972, de vez em quando, um segundo extra é acrescentado ao UTC para manter os dois sincronizados. Isso aconteceu 27 vezes. Em uma noite normal, o relógio vai de 23:59:59 para a meia-noite, mas, em uma noite com segundo intercalar, ele marca 23:59:59, 23:59:60 e, então, meia-noite. O problema é que a maioria dos computadores não consegue exibir 23:59:60,

00:32 e o Unix time pressupõe que todos os dias têm exatamente 86.400 segundos. Então, na verdade, o Linux lida com isso atrasando o relógio em 1 segundo e repetindo 23:59:59 duas vezes. Assim, enquanto o mundo acrescentava um segundo, do ponto de vista do seu código, o tempo na verdade voltava no tempo. E, praticamente todas as vezes que isso aconteceu, alguma coisa quebrou. Em 2012, esse salto acionou um bug no kernel do Linux. Programas que recebiam a instrução de esperar um instante continuavam despertando imediatamente, repetidas vezes, e levavam o uso da CPU ao máximo. Isso fez o Reddit ficar fora do ar por 30 a 40 minutos. Depois, no dia de Ano-Novo de 2017, o DNS da Cloudflare

01:04 parou de funcionar porque o código em Go deles media o tempo de cada consulta pegando a hora no final e subtraindo a hora no início. Se o relógio voltar um segundo no meio do processo, a Cloudflare diz que o tempo de resolução percebido será negativo, e rand.Int63N provavelmente entra em pânico se o argumento for negativo. Então, a causa raiz desse problema foi simplesmente a crença de que o tempo não pode voltar. Na verdade, Google e Meta lidam com isso de outra forma. Eles não aplicam um segundo intercalar. Eles o distribuem ao longo do tempo, fazendo seus relógios funcionarem um pouquinho mais devagar por algumas horas, para que o tempo nunca dê um salto. Mas, nesta semana, isso finalmente acabou. A Conferência Geral de Pesos e Medidas, que se reúne a cada 4 anos para

01:36 decidir coisas como o que é um quilograma, já tinha concordado em 2022 em acabar com o segundo intercalar, mas, nesta semana, definiu uma data. A partir de 20 de maio de 2027, o UTC continuará avançando, sem segundos acrescentados ou pulados. E, na verdade, havia um motivo mais assustador para fazer isso. Ultimamente, a Terra tem girado um pouco mais rápido, então, em vez de acrescentarmos um segundo, talvez precisemos tirar um, pulando direto de 23:59:58 para a meia-noite. E a resolução estimou em 30% a probabilidade de precisarmos de um desses até 2035. Mas isso nunca foi feito antes. Todos os segundos intercalares até agora acrescentaram tempo, e o software ainda assim

02:09 errou. A Meta diz que o impacto de remover um segundo nunca foi testado em grande escala. Você já foi afetado por um bug de tempo? Conte nos comentários e inscreva-se para receber mais notícias de desenvolvimento toda semana.

Transcrição original

[00:00] After more than 50 years, they’re scrapping the leap second, which is the exact second that once took down Reddit and broke Cloudflare’s DNS. For a quick refresher, our clocks run on atomic time, but the Earth doesn’t spin perfectly evenly. So, since 1972, every so often, an extra second gets added to UTC to keep the two lined up. This has happened 27 times. On a normal night, the clock will go from 23:59:59 to midnight, but on a leap second night, it goes 23:59:59, 23:59:60, and then midnight. Trouble is, most computers can’t show 23:59:60,

[00:32] and Unix time assumes that every day is exactly 86,400 seconds. So, Linux actually handles this by stepping the clock back 1 second and playing 23:59:59 twice. So, while the world added a second, from your code’s point of view, time actually went backwards, and pretty much every time this has happened, something has broken. In 2012, that jump hit a bug in the Linux kernel. Programs that were told to wait a moment kept waking up instantly over and over and maxed out the CPU. This caused Reddit to go down for 30 to 40 minutes. Then, on New Year’s Day 2017, Cloudflare’s DNS

[01:04] fell over because their Go code actually timed each lookup by taking the time at the end and subtracting the time at the start. If the clock goes backwards a second in the middle, Cloudflare says the perceived resolution time will be negative and rand.Int63N probably panics if the argument is negative. So, the root cause of this one was just the belief that time cannot go backwards. Google and Meta actually handle this in a different way. They don’t do a leap second at all. They smear it, running their clocks very slightly slow for a few hours, so the time never jumps. This week, though, it is finally over. The General Conference of Weights and Measures, which meets every 4 years to

[01:36] decide things like what a kilogram is, already agreed in 2022 to scrap the leap second, but this week, they put a date on it. From the 20th of May 2027, UTC will just keep ticking with no seconds added or skipped. And there was actually a scarier reason to do this. Lately, the Earth has actually been spinning a bit faster, so instead of adding a second, we might needed to take one away, jumping straight from 23:59:58 to midnight. And the resolution put the that we’d actually need one of these by 2035 at 30%. But, this has never been done before. Every leap second so far has added time, and software still got

[02:09] that wrong. Meta says the impact of removing one has never been tested on a large scale. Have you ever been bitten by a time bug? Let me know in the comments, and subscribe for more dev news every week.