Por que um domínio pendente ficou treze horas sem mostrar erro

Ler o original em inglês

migrationdns-and-sslsilent-failureverification

Imagem de capa: Por que um domínio pendente ficou treze horas sem mostrar erro

Treze horas. Foi o tempo que um domínio ficou no meio de uma migração, preso em “pendente” (Ler em inglês), com um campo de erro completamente vazio.

Um campo de erro vazio parece boa notícia. Sem erro, nada está errado, e quando você está tentando andar com um lote de domínios, aceita essa leitura e passa para o próximo. Foi isso que fizemos na primeira vez que isso apareceu. Verificamos a única parte do registro que sabíamos verificar, vimos que estava publicada corretamente e tratamos a parada como problema de outra pessoa. Achamos que era uma fila de verificação lenta do outro lado.

Não era uma fila lenta. Era um registro que tinha ficado desatualizado sem avisar ninguém.

O que tinha mudado por baixo dos nossos pés

O sistema que verifica o domínio espera encontrar um token específico publicado em um lugar específico. Nós tínhamos publicado um token. Só que não era o atual. Quando a primeira janela de verificação se fecha sem sucesso, o sistema gera um novo token esperado e passa a aguardar por ele. Nenhum erro é gerado em lugar nenhum. Nosso token estava certo no momento em que o publicamos. Quando voltamos para olhar a parada, ele já era a resposta errada para uma pergunta que tinha mudado.

Verificar duas vezes não teria ajudado. Nós tínhamos verificado. Mas verificar uma vez e confiar que o resultado continua valendo depois é diferente de o resultado realmente continuar valendo depois. Um registro publicado e um registro esperado no momento podem se afastar sem que nada no meio levante uma bandeira, porque nenhum dos lados conta uma rotação como erro. Do ponto de vista do sistema, é um evento normal, silencioso e esperado. Do nosso, é invisível, a não ser que a gente vá procurar de propósito.

A correção, e o resto do lote

Depois que entendemos isso, a correção foi quase sem graça. Buscamos o valor esperado atual naquele momento, e não o valor que estava correto quando olhamos pela primeira vez, e publicamos de novo com ele.

Outros quatro domínios do mesmo lote de vinte e cinco estavam travados exatamente do mesmo jeito. A mesma deriva silenciosa, o mesmo campo de erro em branco, a mesma leitura fácil de “tudo bem, só está lento”. Corrigir os quatro levou minutos, assim que o descompasso de verdade ganhou um nome. Ficamos perguntando “será que fizemos isso direito” quando a pergunta que importava era “o que fizemos ainda está atual”.

Se uma etapa simplesmente fica parada

Um campo de erro em branco ou um status preso em “pendente” tenta você a ler isso como “sem problema, é só esperar”. Antes de esperar mais, procure qualquer coisa nessa etapa que você verificou uma vez e que o outro lado pode ter mudado desde então: um token, uma configuração, uma referência. Se existir algo assim, talvez a parada não seja a paciência acabando. Pode ser uma comparação que ninguém refez desde o momento em que você a fez pela primeira vez.

No nosso caso, foi um token desatualizado, treze horas e mais quatro domínios, de vinte e cinco, presos atrás do mesmo campo em branco.

Receba a próxima história de IA no dia a dia

Histórias em linguagem simples sobre usar IA para facilitar o trabalho do dia a dia. Um e-mail curto quando sair uma nova, sem jargão.