Parameter · Developer Options
send_abort_for_crash
Send SIGABRT not SIGQUIT to child processes after backend crash.
- Default:
off - Type: bool
- Applies: Reload
In plain words
When one backend crashes, the postmaster stops all others so shared memory can be reset safely. Normally it asks them to quit quietly. With this setting it sends them an abort signal instead, which makes each one write a core dump: a snapshot of its memory for developers to analyse.
For DBAs and operators
The normal crash cycle: one child dies with a signal, the postmaster logs, for example, client backend (PID …) was terminated by signal 11: Segmentation fault, then terminating any other active server processes and sends SIGQUIT to everyone, followed by crash recovery (if restart_after_crash is on).
With send_abort_for_crash = on the others get SIGABRT instead, so you get a core of every process as it was at the moment of the crash, which helps when the crashing process was a victim of something another process did to shared memory. Cores are only written if the OS allows it (ulimit -c, systemd LimitCORE, kernel.core_pattern/systemd-coredump). Many processes × shared memory can fill a disk quickly.
Developer option: meant for debugging and testing PostgreSQL itself. Leave it at the default on production servers unless a specific diagnosis calls for it.
How to change it
Change in postgresql.conf or ALTER SYSTEM, then run SELECT pg_reload_conf().
See it in context
Related parameters
send_abort_for_kill restart_after_crash remove_temp_files_after_crash