"Tom Lane" <tgl@sss.pgh.pa.us> wrote
>
> The key word there is "safely". We don't have a lot of trust in
> SIGTERM'ing individual backends (as opposed to shutting down the
> whole cluster at once, which is a well-tested code path). See the
> archives.
>
Maybe related question: is the code below in XactLockTableWait() related to
SIGQUIT?
/*
* Transaction was committed/aborted/crashed - we have to update pg_clog
* if transaction is still marked as running.
*/
if (!TransactionIdDidCommit(xid) && !TransactionIdDidAbort(xid))
TransactionIdAbort(xid);
I interpret that if a quickdie or crash happens, then other backends may
still run for a while, so it is important to mark related transaction abort.
Or there is some other more obvious reason for that?
Regards,
Qingqing