apache / apache/iceberg-cpp

Decouple fatal logging from process termination

Abierto
#887 1 comentario 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
C++
Estrellas
221
Forks
124
Merge medio
1 d 16 h
PR fusionados (30 d)
21

Descripción

`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.

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Comienza localizando las definiciones y los sitios de llamada de LogLevel::kFatal, las macros de registro fatal y FatalHandler. Lee cómo los fallos recuperables utilizan Status/Result y rastrea dónde se invoca std::abort(). La finalización debe poder demostrarse registrando una condición fatal sin forzar la terminación del proceso, mientras que la terminación por invariantes irrecuperables sigue siendo explícita.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
cpp
Área
backend
Tipo de issue
Refactorización
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Tranquilo
Claridad
Necesita aclaración
Aptitud para principiantes
30/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.