Bug no Coreutils escrito em Rust impediu atualização automática do Ubuntu 25.10

O Ubuntu 25.10 enfrentou um problema técnico devido a falha na nova implementação em Rust do comando “date”, parte do pacote “uutils coreutils”, que substitui as tradicionais ferramentas GNU escritas em C.

O erro estava relacionado à opção -r, usada para exibir a data da última modificação de um arquivo. Em vez de mostrar a data correta, o comando retornava sempre o horário atual. Assim que a falha foi reportada, os desenvolvedores do Ubuntu classificaram o problema como crítico e lançaram uma correção rapidamente.

Embora parecesse um detalhe menor, essa falha teve consequências graves: o sistema de atualização automática do Ubuntu utiliza o comando date -r para verificar o último momento em que houve busca por atualizações.

Como o comando sempre retornava o horário atual, o sistema acreditava que já estava atualizado e, portanto, parava de buscar novas versões. O mesmo problema afetou rotinas automáticas de backup, que deixaram de executar cópias diárias porque os arquivos pareciam sempre recentes.

Esse incidente ocorreu no contexto da iniciativa de “oxidação” do Ubuntu — o processo de reescrever partes fundamentais do sistema em Rust. Essa modernização já vinha sendo planejada há algum tempo e inclui ferramentas essenciais como sudo-rs (substituto do sudo) e as novas versões de comandos básicos como ls, cp e mv.

Os desenvolvedores do Ubuntu reafirmaram o compromisso de continuar a modernização com cautela, garantindo que a estabilidade — marca registrada das versões LTS — não seja comprometida.

O episódio do bug no comando date serviu como um lembrete dos desafios de substituir componentes fundamentais do sistema operacional, mas também reforçou a importância de testar amplamente essas novas implementações antes de torná-las padrão.

No fim, o erro foi corrigido e o sistema de atualização voltou ao normal, mas o caso ilustrou claramente os riscos e benefícios de trazer tecnologias modernas, como o Rust, para o coração do Linux.

Por quê mudar?

A motivação principal dessa transição não é apenas desempenho, mas resiliência, segurança e robustez. O Rust, reduz a possibilidade de falhas de memória e aumenta a confiabilidade do sistema — um ponto crucial para uma distribuição usada em milhões de dispositivos, desde servidores até sistemas críticos.

Para facilitar a adoção e o teste dessas novas ferramentas, foi criado o utilitário oxidizr, que permite alternar entre as versões tradicionais em C e as novas implementações em Rust. O usuário pode habilitar ou desabilitar essas “experiências” com comandos simples, revertendo facilmente o sistema ao estado anterior em caso de problemas.

3 curtidas

Outra característica importante de ser lembrada é a alteração da licença do software de GPL v3 para MIT.

1 curtida