Rust: Untersuchung eines seltsamen Speicherüberlauf-Fehlers

2025-01-19
Rust: Untersuchung eines seltsamen Speicherüberlauf-Fehlers

Qovery's engine-gateway, ein Rust-Dienst, erlitt unerwartete Speicherüberlauf-Fehler (OOM). Das Monitoring zeigte einen stabilen Speicherverbrauch vor den abrupten Neustarts. Der Schuldige? Die Anyhow-Bibliothek, wenn Backtraces aktiviert sind, fängt für jeden Fehler einen Backtrace ein. Die Symbolisierung, die nur beim Ausgeben von Fehlern im Debug-Modus (`{:?}`) ausgelöst wird, führte zu einem massiven Speicherverbrauch. Das Setzen der Umgebungsvariablen `RUST_BACKTRACE=1` und `RUST_LIB_BACKTRACE=0`, um Backtraces nur bei Panics zu aktivieren, behob das Problem. Dies unterstreicht, wie irreführend das Monitoring sein kann und wie wichtig eine gründliche Überprüfung der Bibliotheksdokumentation ist.

Mehr lesen
Entwicklung