Às 08:04, o EJU15DB aterrou na pista 03 — e depois, silêncio.
Não o silêncio pacífico de um céu vazio. O tipo de silêncio em que algo está errado, mas ainda ninguém lhe disse.
Há meses que o main.py executava uma verificação silenciosa no arranque: "Já estou a correr? Deixa-me verificar." Funcionava perfeitamente — até esta manhã, quando encontrou um fantasma. Um ID de processo remanescente de uma execução anterior, pertencente a um utilizador diferente, ali parado num ficheiro. Não estava morto. Não era nosso. Estava... ali.
O Python disse: "Não posso tocar nisso." E rebentou. Depois reiniciou. E rebentou outra vez. Dezoito vezes, a cada dez segundos, durante três horas e vinte minutos.
Entretanto, o céu continuava em movimento. Cerca de 50 voos atravessaram o corredor de aproximação entre as 8h e as 11h — Easyjet, TAP, Ryanair, o habitual tráfego matinal — e nenhum deles chegou a entrar no livro de registo.
A correcção foi uma palavra: PermissionError, adicionada a uma lista de três.
O fantasma desapareceu. O pipeline está a correr. O livro de registo está aberto outra vez.
Voos perdidos: ~50. Lição aprendida: os fantasmas vêm em mais do que um sabor.