Decouple fatal logging from process termination
- Lingua principale
- C++
- Stelle
- 221
- Fork
- 124
- Merge medio
- 1g 17h
- PR unite (30g)
- 21
Descrizione
`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.
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Direzione di ricerca
Inizia individuando le definizioni e i punti di chiamata di LogLevel::kFatal, delle macro di logging fatale e di FatalHandler. Leggi come i fallimenti recuperabili usano Status/Result e traccia dove viene invocato std::abort(). Il completamento deve essere dimostrabile registrando una condizione fatale senza forzare la terminazione del processo, mentre la terminazione dovuta a invarianti irrecuperabili rimane esplicita.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- cpp
- Ambito
- backend
- Tipo di issue
- Refactoring
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Tranquilla
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 30/100