Re: idle in txn query cancellation - Mailing list pgsql-hackers

From Andres Freund
Subject Re: idle in txn query cancellation
Date
Msg-id 201002151143.37382.andres@anarazel.de
Whole thread Raw
In response to Re: idle in txn query cancellation  (Simon Riggs <simon@2ndQuadrant.com>)
List pgsql-hackers
On Monday 15 February 2010 09:47:09 Simon Riggs wrote:
> On Sat, 2010-02-13 at 22:37 +0100, Andres Freund wrote:
> > On a related note I would also like to get rid of the restriction that
> > a normal query cancellation will only be done if no subtransactions
> > are stacked.
> > But I guess its too late for that? (I have a patch ready, some cleanup
> > would be needed)
> > The latter works by:
> > - adding a explicit error code (which should be done regardless of
> > this
> > discussion)
> > - avoiding to catch such error at a few places (plperl, plpython)
> > - recursively aborting the subtransactions once the mainloop is
> > reached
> > - relying on the fact that the cancellation signal will get resent
> > - possibly escalating to a FATAL if nothing happens after a certain
> > number of tries
> 
> Such an action needs to have a good, clear theoretical explanation with
> it to show that the interaction with savepoints is a good one.
I can provide a bit more explanation. The patch (other thread) already added 
some more comments but its definitely good to explain/define some more.
Will post that to the thread with the patch, ok?

> I toyed with the idea of a new level between ERROR and FATAL to allow
> ERRORs to be handled by savepoints still in all cases.
I have a hard time believing that it will help in that situation. Either you 
allow cleaning up process local resources in PG_TRY/PG_TRY in which situation 
you cant abort recursively at all places because the catching code block may 
very well reference resources associated with that snapshot or you abort the 
process in a way that there are no process local resources.

How would the middleway between those work?

Andres


pgsql-hackers by date:

Previous
From: Richard Huxton
Date:
Subject: Re: PostgreSQL::PLPerl::Call - Simple interface for calling SQL functions from PostgreSQL PL/Perl
Next
From: Tim Bunce
Date:
Subject: Re: PostgreSQL::PLPerl::Call - Simple interface for calling SQL functions from PostgreSQL PL/Perl