{"Entry":{"collection":"guc","key":"send_abort_for_crash","name":"send_abort_for_crash","aliases":[],"metadata":{"baseline":false,"boot_human":"Not specified","boot_val":null,"category":"Developer Options","category_zh":"","changed_in":[],"changes":[{"documentation_changed":false,"fields":{},"from":"15","status":"added","to":"16"}],"content_hash":"deb3495f33e6fb2acfd03d5bef7c0d9b1716a17b36fbed591a101ba464176fc0","context":"","default_changed_in":[],"default_history":[{"from":"16","to":"19","value":"off"}],"editorial":{"advice":{"olap":"Long analytical runs can amplify send_abort_for_crash's debug overhead and artifacts. Prefer standard EXPLAIN and statistics first, and isolate any developer experiment from normal users.","oltp":"Do not tune production OLTP with send_abort_for_crash. Enable it only for a bounded reproduction with an owner, log/disk budget, rollback condition, and evidence-capture plan; restore the default immediately afterward.","small":"Keep send_abort_for_crash at its upstream default. A small host has less spare CPU, disk, connection, and log capacity for developer instrumentation."},"mechanism":["After one backend crashes, the postmaster normally asks remaining children to stop with SIGQUIT. send_abort_for_crash substitutes SIGABRT so those peer processes normally produce core dumps.","The dumps capture peer state around the incident, not just the original crashing process. Repeated crashes can therefore create many large core files.","PostgreSQL provides no automatic core-file cleanup. OS core limits, storage capacity, privacy, and a collection workflow must be configured before enabling it. Its SIGHUP context allows configuration reload without a server restart."],"pitfalls":["Leaving send_abort_for_crash enabled after the bounded diagnostic or recovery task.","Running the experiment on the only copy of production data.","Underestimating log, core-file, temporary-file, WAL, CPU, or connection-slot amplification.","Treating a server that merely starts or completes a query as proof that data and behavior are correct."],"references":[{"title":"PostgreSQL 19 Beta 4: send_abort_for_crash","url":"https://www.postgresql.org/docs/19/runtime-config-developer.html#GUC-SEND-ABORT-FOR-CRASH"},{"title":"PostgreSQL 19 release notes","url":"https://www.postgresql.org/docs/19/release-19.html"}],"related":["send_abort_for_kill","remove_temp_files_after_crash","log_error_verbosity","data_directory"],"summary":"send_abort_for_crash — Send SIGABRT not SIGQUIT to child processes after backend crash. Observed in PG16–19 Beta 4; its last measured boot default is off in PG19 Beta 4, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA."},"enumvals":[],"first_version":"16","group":"Developer Options","group_slug":"developer","imported_at":"2026-09-27T17:57:31.93493+08:00","intro_commit":{"authored_at":"2022-11-21T11:59:29-05:00","discussion":["https://postgr.es/m/2251016.1668797294@sss.pgh.pa.us"],"hash":"51b5834cd53f0bd068729043b55f7da3ca6bb15f","subject":"Provide options for postmaster to kill child processes with SIGABRT.","url":"https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=51b5834cd53f0bd068729043b55f7da3ca6bb15f"},"key":"send_abort_for_crash","last_version":"20","max_val":"","min_val":"","name":"send_abort_for_crash","position":348,"present_in":["16","17","18","19","20"],"short_desc":"By default, after a backend crash the postmaster will stop remaining child processes by sending them SIGQUIT signals, which permits them to exit more-or-less gracefully.","short_desc_zh":"","source_rev":"english-manuals:136c9e1fcf53ccce0367f3bd69062195d1e70dcd9a9e7a98a83123adfaf183e5","unit":"","vartype":"bool"}},"Definition":{"Collection":"guc","Key":"send_abort_for_crash","SourceDatabase":"center","Version":"18","SourceTable":"guc","SourceKey":"send_abort_for_crash","SourceRevision":"english-manuals:136c9e1fcf53ccce0367f3bd69062195d1e70dcd9a9e7a98a83123adfaf183e5","Facts":{"boot_val":"off","category":"Developer Options","context":"sighup","description":"By default, after a backend crash the postmaster will stop remaining child processes by sending them SIGQUIT signals, which permits them to exit more-or-less gracefully. When this option is set to on, SIGABRT is sent instead. That normally results in production of a core dump file for each such child process. This can be handy for investigating the states of other processes after a crash. It can also consume lots of disk space in the event of repeated crashes, so do not enable this on systems you are not monitoring carefully. Beware that no support exists for cleaning up the core file(s) automatically. This parameter can only be set in the postgresql.conf file or on the server command line.","doc":{"anchor":"GUC-SEND-ABORT-FOR-CRASH","file":"runtime-config-developer.html","lang":"en","sha256":"f5e7e39d176c642ac0799c87669ce2f6f60fcd97d109e290860ec74c36d7ecad","slug":"18"},"documented":true,"enumvals":null,"extra_desc":null,"lang":"en","max_val":null,"metadata_version":"18","min_val":null,"name":"send_abort_for_crash","short_desc":"Send SIGABRT not SIGQUIT to child processes after backend crash.","source":"pg-settings-source-snapshot","unit":null,"vartype":"bool"},"ManualEvidence":{"doc":{"anchor":"GUC-SEND-ABORT-FOR-CRASH","file":"runtime-config-developer.html","lang":"en","sha256":"f5e7e39d176c642ac0799c87669ce2f6f60fcd97d109e290860ec74c36d7ecad","slug":"18"}},"MeasuredEvidence":{"metadata_version":"18"}},"Text":{"Collection":"guc","Key":"send_abort_for_crash","SourceDatabase":"center","Version":"18","Locale":"en","Title":"send_abort_for_crash","Summary":"By default, after a backend crash the postmaster will stop remaining child processes by sending them SIGQUIT signals, which permits them to exit more-or-less gracefully. When this option is set to on, SIGABRT is sent instead. That normally results in production of a core dump file for each such child process. This can be handy for investigating the states of other processes after a crash. It can also consume lots of disk space in the event of repeated crashes, so do not enable this on systems you are not monitoring carefully. Beware that no support exists for cleaning up the core file(s) automatically. This parameter can only be set in the postgresql.conf file or on the server command line.","BodyHTML":"\u003cp\u003eBy default, after a backend crash the postmaster will stop remaining child processes by sending them SIGQUIT signals, which permits them to exit more-or-less gracefully. When this option is set to on, SIGABRT is sent instead. That normally results in production of a core dump file for each such child process. This can be handy for investigating the states of other processes after a crash. It can also consume lots of disk space in the event of repeated crashes, so do not enable this on systems you are not monitoring carefully. Beware that no support exists for cleaning up the core file(s) automatically. This parameter can only be set in the postgresql.conf file or on the server command line.\u003c/p\u003e","SourceRevision":"english-manuals:136c9e1fcf53ccce0367f3bd69062195d1e70dcd9a9e7a98a83123adfaf183e5","ContentHash":"4db7749ecab006c88d0455dc27ecdb1630f74655d0c087c461984e94155dfe6f","Payload":{"description":"By default, after a backend crash the postmaster will stop remaining child processes by sending them SIGQUIT signals, which permits them to exit more-or-less gracefully. When this option is set to on, SIGABRT is sent instead. That normally results in production of a core dump file for each such child process. This can be handy for investigating the states of other processes after a crash. It can also consume lots of disk space in the event of repeated crashes, so do not enable this on systems you are not monitoring carefully. Beware that no support exists for cleaning up the core file(s) automatically. This parameter can only be set in the postgresql.conf file or on the server command line."}},"RequestedLocale":"zh-Hans","Fallback":true,"Versions":["16","17","18","19","20"],"Locales":["en"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
