Decouple fatal logging from process termination
- Langage dominant
- C++
- Étoiles
- 221
- Forks
- 124
- Merge moyen
- 1 j 17 h
- PR mergées (30 j)
- 21
Description
`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.
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Piste de recherche
Commencez par localiser les définitions et les sites d’appel de LogLevel::kFatal, des macros de journalisation fatale et de FatalHandler. Examinez comment les échecs récupérables utilisent Status/Result et suivez l’endroit où std::abort() est invoqué. L’achèvement doit pouvoir être démontré en journalisant une condition fatale sans forcer l’arrêt du processus, tandis que l’arrêt dû à une invariant irrécupérable reste explicite.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- cpp
- Domaine
- backend
- Type d'issue
- Refactorisation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- Calme
- Clarté
- À clarifier
- Accessibilité débutants
- 30/100