On Fri, Mar 4, 2011 at 1:27 PM, Fujii Masao <masao.fu...@gmail.com> wrote: > On Fri, Mar 4, 2011 at 7:01 AM, Tom Lane <t...@sss.pgh.pa.us> wrote: >> Simon Riggs <si...@2ndquadrant.com> writes: >>> Anyway, this is code in the interrupt handler and only gets executed >>> when we receive SIGTERM for a fast shutdown. >> >> I trust it's not getting *directly* executed from the interrupt handler, >> at least not without ImmediateInterruptOK. > > Yes, the backend waits for replication while cancel/die interrupt is > being blocked, i.e., InterruptHoldoffCount > 0. So SIGTERM doesn't > lead the waiting backend to there directly. The backend reaches there > after returning the result.
BTW, this is true in COMMIT and PREPARE cases, and false in COMMIT PREPARED and ROLLBACK PREPARED cases. In the latter cases, HOLD_INTERRUPT() is not called before waiting for replication. Regards, -- Fujii Masao NIPPON TELEGRAPH AND TELEPHONE CORPORATION NTT Open Source Software Center -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers