Linux system errors
Signal 11 (SIGSEGV)
Reviewed for reference consistency: August 11, 2026
kernel signal for invalid memory reference segmentation fault
What 11 Means
The 11 error on the Linux system errors indicates signal 11 (sigsegv) — kernel signal for invalid memory reference segmentation fault. This typically occurs due to dereferencing a null, uninitialized, or dangling memory pointer.
Signal 11 (SIGSEGV) means the kernel terminated a process for touching memory outside its address space; uncaught, it surfaces as exit code 139. Memory pages carry read, write, and execute permissions; an instruction that violates them or dereferences an unmapped address raises the fault, and the default handler ends the process, optionally with a core dump.
How to fix 11
General informational guidance, not professional advice. Commands can affect your system or data — back up first and proceed at your own risk. FixerCode is an independent reference, not affiliated with any vendor mentioned.
Check kernel logs to confirm SIGSEGV vs resource exhaustion
Inspect dmesg output for 'segfault' entries to verify a Signal 11 crash, or look for 'Resource temporarily unavailable' for an Errno 11 event.
dmesg -T | grep -iE 'segfault|signal 11|eagain'Inspect system process and thread limits for EAGAIN errors
If experiencing 'fork: Resource temporarily unavailable' (EAGAIN), check the user process limits and system-wide thread limits.
ulimit -u && sysctl kernel.threads-max kernel.pid-maxCapture a backtrace with GDB for SIGSEGV crashes
Run the faulting compiled application under gdb and obtain a backtrace to isolate the invalid memory access function and line number.
gdb --args ./your_program run btEnable core dumps for post-mortem crash inspection
Configure core dumps to capture process state at the moment of SIGSEGV signal delivery without needing live reproduction.
ulimit -c unlimited coredumpctl gdb
Technical Background
The Linux kernel manages virtual memory in discrete pages with specific permissions (read, write, execute). When an instruction attempts an operation contrary to page permissions or accesses an unmapped address, the CPU raises an architectural exception.
The kernel intercepts this exception and delivers SIGSEGV (signal number 11) to the process. Unless the application registers a custom signal handler, the default action is immediate process termination and optional core dump generation.
Like every standard signal, SIGSEGV has a disposition a process can change: the default action terminates the process and dumps core, but a program may install its own handler instead. Dispositions belong to the whole process, children inherit them across fork, and exec resets caught signals back to default.
Common Causes
- Dereferencing a null, uninitialized, or dangling memory pointer
- Writing to read-only memory pages or code segments
- Out-of-bounds array access corrupting adjacent memory pages
- Uncaught hardware memory fault or stack exhaustion
Typical Scenarios
- A program dereferences an uninitialized pointer variable
- A native shared library crashes when accessing memory freed by another thread
- A service terminates abruptly, logging 'Segmentation fault (core dumped)'
- A long-running service dies in production without its own error message, and the kernel log carries a segfault record naming the binary
What to Know
Signal 11 indicates an invalid memory reference. It is the direct precursor to exit code 139. Inspecting stack traces and using memory debugging tools isolates the root memory fault.
Frequently Asked Questions
Common questions about Linux 11 error
Signal 11 (SIGSEGV) is a kernel termination signal sent when a process attempts illegal memory access. Errno 11 (EAGAIN/EWOULDBLOCK) is a system call return code telling a running process that a requested resource is temporarily busy or unavailable.
Linux shells report signal-terminated processes by adding 128 to the signal number. For Signal 11 (SIGSEGV), adding 128 yields 139 (128 + 11 = 139).
Kernel logs (`dmesg`) showing 'segfault at ... ip ...' indicate Signal 11. System log messages stating 'Resource temporarily unavailable' or syscall returns of -1 with errno 11 indicate EAGAIN.
Libraries that expose the raw wait status, such as Python subprocess, hand back the negative signal number for a signal death, so SIGSEGV surfaces as -11. Shells apply the 128 + signal convention to the same event and print 139. The signal is identical; only the reporting layer differs.
They are si_code values the kernel attaches to the signal: SEGV_MAPERR means the faulting address is not mapped at all, while SEGV_ACCERR means the address is mapped but the access violated its permissions. The si_addr field carries the faulting address itself.
Related Error Codes
Process Killed — the process was terminated by a SIGKILL signal
Exit Code 139 — process terminated by segmentation fault (Signal 11 / SIGSEGV)
Input/output error EIO — a read or write operation could not complete
Out of Memory (ENOMEM) — the kernel cannot allocate the requested amount of memory
Related Errors From Other Categories
Similar error codes documented across different platforms and systems
A write under Docker's storage ran out of filesystem space and failed.
Git's internal object database is missing or corrupted.
The operating system denied Git's request for more RAM during a heavy operation.
Git detected corruption inside one of its compressed data bundles (packfiles).