SIGABRT (Signal 6): Meaning, Exit Code 134 & Fix
SIGABRT is Unix signal 6. A process terminated by it reports exit code 134 (128 + 6).
SIGABRT is raised by abort(), typically from a failed assertion or a fatal runtime error. When it kills a process, the shell reports exit code 134 - the 128 + signal-number convention.
What it means
A C/C++ assertion, glibc heap-corruption detection, C++ std::terminate, or a runtime panic configured to abort.
When it happens in CI
- glibc detected heap corruption ("free(): invalid pointer").
- A failed
assert(). - An unhandled C++ exception → std::terminate.
How to handle it
Read stderr above the abort for the specific message; this is a real bug, not a transient failure. Reproduce with debug symbols.
Reading exit codes in CI
- A shell reports
128 + Nwhen a process is terminated by signal N: 137 is SIGKILL (usually the out-of-memory killer), 143 is SIGTERM, 130 is SIGINT. - Exit code 137 in a container almost always means the kernel killed it for memory. Nothing in the application log will explain it.
- A pipeline reports the exit status of its LAST command unless
pipefailis set, which is how a failing command piped toteeproduces a green build. - Some tools use non-zero codes for non-failure outcomes. Check the tool documentation before treating any non-zero code as an error.