Rust: Investigando um Erro de Memória Esquisito

2025-01-19
Rust: Investigando um Erro de Memória Esquisito

O engine-gateway da Qovery, um serviço Rust, sofreu crashes inesperados de memória insuficiente (OOM). O monitoramento mostrava uso estável de memória antes das reinicializações abruptas. O culpado? A biblioteca anyhow, quando os backtraces estão habilitados, captura um backtrace para cada erro. A resolução de símbolos, acionada apenas ao imprimir erros no modo de depuração (`{:?}`), causou um consumo massivo de memória. Definir as variáveis de ambiente `RUST_BACKTRACE=1` e `RUST_LIB_BACKTRACE=0` para habilitar backtraces apenas em pânico resolveu o problema. Isso destaca como o monitoramento pode ser enganoso e a importância de uma revisão completa da documentação da biblioteca.

Desenvolvimento