- O servidor de e-mail do departamento de estatística de uma universidade dos EUA apresentou um fenômeno estranho: não conseguia enviar e-mails para locais a mais de 500 milhas de distância
- A investigação mostrou que, durante uma atualização do SunOS, a versão do Sendmail foi rebaixada, e o arquivo de configuração deixou de ser compatível
- Como o Sendmail 5 não reconhecia os nomes longos de opções de um arquivo de configuração feito para o Sendmail 8, vários valores padrão foram definidos como 0
- Entre eles, o timeout de conexão SMTP foi definido como 0, fazendo com que todas as conexões remotas que levassem mais de cerca de 3 milissegundos falhassem
- Como a latência de rede aumentava proporcionalmente à distância, o resultado foi um bloqueio no envio de e-mails para servidores a mais de 500 milhas de distância
O início do problema
- O departamento de estatística recebeu um relato de que “não era possível enviar e-mail para lugares a mais de 500 milhas de distância”
- Até 520 milhas funcionava, mas acima disso falhava
- O chefe do departamento chegou a mobilizar um geoestatístico para montar um mapa do raio de alcance do e-mail, confirmando um raio de cerca de 500 milhas
- O administrador de sistemas reproduziu o problema enviando e-mails de teste para várias regiões
- Houve sucesso com Princeton, a 400 milhas, mas falha com Memphis, a 600 milhas
- New York (420 milhas) funcionava, mas Providence (580 milhas) falhava
Análise da causa
- O arquivo de configuração sendmail.cf do servidor parecia normal e havia sido criado manualmente pelo próprio autor para o Sendmail 8
- Porém, ao verificar o banner da porta SMTP, ficou claro que quem estava em execução era o SunOS Sendmail 5
- Durante o processo de patch do servidor, o sistema operacional foi atualizado e o Sendmail acabou sendo rebaixado da versão 8 para a 5
- O arquivo de configuração existente permaneceu no lugar, mas o Sendmail 5 não reconhecia os nomes longos de opções do Sendmail 8
- As opções não reconhecidas foram ignoradas, e os valores padrão desses itens foram reinicializados para 0
- Em especial, o valor de timeout para conexão com servidores SMTP remotos ficou em 0, então as tentativas de conexão eram abortadas após cerca de 3 milissegundos
A relação entre distância e velocidade
- Na época, a rede do campus era totalmente baseada em switches, com praticamente nenhuma latência de roteadores
- Por isso, o tempo de conexão era determinado pela distância física (velocidade da luz)
- Pelos cálculos, 3 milissegundos correspondiam a cerca de 558 milhas
- Isso batia com o fenômeno relatado de “500 milhas ou um pouco mais”
Conclusão
- A causa raiz do problema foi um erro de parsing da configuração causado por incompatibilidade entre versões do Sendmail
- Como o timeout ficou configurado como 0, surgiu um fenômeno de rede que parecia impor um limite de distância física
- O caso permanece como uma anedota clássica que mostra a importância da compatibilidade de versões e da validação de configurações na administração de sistemas
1 comentários
Comentários do Hacker News
Em meados dos anos 1990, havia um problema estranho em que os PCs do escritório não davam boot de manhã
Descobriu-se que, todo inverno, um pequeno rato entrava pelo slot do disco rígido para se aquecer e urinava, causando curto-circuito no circuito
Depois que o computador ficava ligado por um tempo e esquentava, secava e então era possível inicializar
Mais tarde, compraram um sled de drive vazio para tampar o espaço, e o problema desapareceu completamente
Independentemente de ser real ou não, é interessante acompanhar o processo de rastrear esse tipo de problema
Link relacionado
Uma vez, já encontrei até um morcego pendurado no meu cabo CAT
Se você deixar a janela aberta à noite, talvez isso também afete a largura de banda
Como desenvolvedor, é preciso estar preparado até para situações absurdas como um erro de "Frog on Keyboard"
Post relacionado
Acho que o fato de o presidente, no texto original, ter reunido as informações necessárias para resolver o problema não foi devidamente valorizado
Sem esses dados, o autor provavelmente teria passado muito tempo procurando um problema de servidor totalmente errado
Se você apenas disser “o e-mail não funciona assim”, da próxima vez ninguém vai fornecer dados, ou vai fazer suposições erradas
Este texto é um post clássico que voltou a fazer sucesso no HN ao longo de vários anos
Foi repostado em diferentes momentos, como 2023, 2020 e 2015
Versão de 2023, versão de 2020, versão de 2015
Ainda bem que não perdi desta vez. É uma lição para não perder a humildade
No HN, um repost depois de cerca de um ano é aceitável, e é bom que clássicos reapareçam para os usuários novos
Veja o FAQ do HN
Também organizei junto links para várias versões relacionadas
Acho que nessa época vamos poder rir enquanto depuramos erros de IA
Ontem à noite, reproduzi um episódio de TV no VLC, e depois de uns 30 segundos a energia desligou
Isso aconteceu três vezes no mesmo ponto, então achei estranho. Pensei se o próprio vídeo poderia ser a causa
Lembrei do caso antigo em que um vídeo da Janet Jackson danificava discos rígidos
E, para deixar tudo mais estranho, o episódio era Black Mirror S7E01
Link de referência
Se for o segundo caso, é bem provável que seja um problema térmico
Cada codec impõe uma carga de decodificação diferente, então uma determinada parte pode superaquecer o sistema
Recomendo testar reproduzindo a partir de outro ponto ou pulando esse trecho
Vale trocar a fonte ou converter o codec
Ou também pode ser um arquivo alterado maliciosamente, então é preciso verificar a origem
Essa história parece uma versão hacker da anedota do speed check do SR-71 Blackbird
É um clássico que eu releio toda vez que aparece
Link relacionado
Lembrei do clássico “se você compra sorvete de baunilha, o carro liga; se compra de morango, não liga”
Link da história
Link relacionado
Histórias como “Stalking the Wiley Hacker” me levaram ao mundo da computação
Mas é uma pena que, trabalhando na indústria, aquela diversão pura daquela época tenha desaparecido
Link do original
Ele fez uma apresentação em uma associação de quilting e, independentemente do tema, era uma pessoa realmente apaixonada e cativante
Fiquei completamente envolvido pela energia e curiosidade dele
Lembrei da piada “vamos enviar o e-mail 500 milhas mais longe”
E a frase “You had me at EHLO” me fez rir
Naquela época eu sabia todos de cor, mas hoje já não tenho tanta certeza
Antigamente, um computador que eu usava desligava sempre que eu saía da mesa
Descobri que a causa era o assoalho solto de um prédio antigo
A vibração ao me levantar causava curto em uma fonte de alimentação com defeito
Li o texto e imediatamente executei
apt install units. Era uma ferramenta realmente excelenteSe você usa o comando
units, o resultado do cálculo sai invertidoEx.: 1 mile → 1.609 km está correto, mas 1 unit → 1.609 units acaba invertendo o cálculo