Re: Cancelling idle in transaction state

From: Joachim Wieland <joe(at)mcknight(dot)de>
To: Simon Riggs <simon(at)2ndquadrant(dot)com>
Cc: Kris Jurka <books(at)ejurka(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Hannu Krosing <hannu(at)2ndquadrant(dot)com>, James Pye <lists(at)jwp(dot)name>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Cancelling idle in transaction state
Date: 2010-01-06 21:37:46
Message-ID: dc7b844e1001061337s7791d51dw19445f71f39cda09@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Jan 1, 2010 at 10:45 PM, Simon Riggs <simon(at)2ndquadrant(dot)com> wrote:
> CancelRequest's behaviour currently equates to SIGINT, so
> processCancelRequest() can only use SIGINT if SIGINT's behaviour remains
> same.
>
> I would recommend we make SIGINT do cancel-anything, and handle
> everything else via SIGUSR1, including CancelRequest.

Actually, now that I look into it, if we wanted to send SIGUSR1 with a
reason to a backend from within postmaster (where
processCancelRequest() lives), we'd need to have shared memory access
in postmaster which we have not.

So the easiest way would be to keep SIGINTs behavior (cancel running
statements, not idle transactions) and allow cancellation of idle
transactions only via SQL but not via command line.

Other ideas?

Joachim

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2010-01-06 21:42:09 Re: win32 socket definition
Previous Message Magnus Hagander 2010-01-06 21:37:41 Re: win32 socket definition