apache / apache/iceberg-cpp

Decouple fatal logging from process termination

Ouverte
#887 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
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

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.