Decouple fatal logging from process termination
- Vorherrschende Sprache
- C++
- Sterne
- 221
- Forks
- 124
- Ø Merge
- 1 T. 16 Std.
- Gemergte PRs (30 T.)
- 21
Beschreibung
`LogLevel::kFatal` and the fatal logging macros unconditionally call `std::abort()`. `FatalHandler` runs before the abort, but it is process-global and cannot prevent termination.
This is unsafe for embedded and multi-tenant applications, where one failed Iceberg operation must not terminate the host process.
Logging should not control process lifetime. Recoverable failures should continue to use `Status`/`Result`, while termination for unrecoverable internal invariants should use a separate, explicit mechanism.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginne damit, die Definitionen und Aufrufstellen für LogLevel::kFatal, die Fatal-Logging-Makros und FatalHandler zu finden. Lies nach, wie wiederherstellbare Fehler Status/Result verwenden, und verfolge, wo std::abort() aufgerufen wird. Die Fertigstellung sollte dadurch nachweisbar sein, dass eine fatale Bedingung protokolliert werden kann, ohne die Beendigung des Prozesses zu erzwingen, während die Beendigung bei nicht wiederherstellbaren Invarianten weiterhin explizit bleibt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- cpp
- Bereich
- backend
- Issue-Typ
- Refactoring
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Ruhig
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 30/100