apache / apache/iceberg-cpp

Decouple fatal logging from process termination

未关闭
#887 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
C++
星标
221
派生
124
平均合并
1 天 16 小时
30 天内合并 PR
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 日志宏和 FatalHandler 的定义及调用位置。阅读可恢复故障如何使用 Status/Result,并追踪 std::abort() 的调用位置。完成情况应能够通过记录 fatal 条件而不强制进程终止来证明,同时不可恢复不变量导致的终止仍应保持显式。

由索引模型根据 Issue 内容生成。

评估

技术栈
cpp
领域
backend
Issue 类型
重构
难度
5/5
预计耗时
一周以上
活跃度
冷清
描述清晰度
需要澄清
新手友好度
30/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。