Decouple fatal logging from process termination
- 主要言語
- C++
- スター
- 221
- フォーク
- 124
- 平均マージ
- 1日 16時間
- マージ済み PR(30日)
- 21
説明
`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.
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
調査の方向性
まず、LogLevel::kFatal、fatal logging マクロ、および FatalHandler の定義と呼び出し箇所を探します。回復可能な失敗で Status/Result がどのように使われているかを読み、std::abort() が呼び出されている箇所を追跡します。完了したことは、プロセスの終了を強制せずに fatal な条件をログ出力できることで示せる必要があります。一方で、回復不能な不変条件による終了は引き続き明示的にします。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- cpp
- 領域
- backend
- issue の種類
- リファクタリング
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 活発さ
- 静か
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 30/100