Re: fix crash with Python 3.11 - Mailing list pgsql-hackers

From Peter Eisentraut
Subject Re: fix crash with Python 3.11
Date
Msg-id 73daabb7-9fc7-fb7a-5e06-a968c611b032@enterprisedb.com
Whole thread Raw
In response to Re: fix crash with Python 3.11  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: fix crash with Python 3.11
List pgsql-hackers
On 16.01.22 23:53, Tom Lane wrote:
> I think a possible fix is:
> 
> 1. Before entering the PG_TRY block, check for active subtransaction(s)
> and immediately throw a Python error if there is one.  (This corresponds
> to the existing errors "cannot commit while a subtransaction is active"
> and "cannot roll back while a subtransaction is active".  The point is
> to reduce the number of system states we have to worry about below.)
> 
> 2. In the PG_CATCH block, after collecting the error data do
>     AbortOutOfAnyTransaction();
>     StartTransactionCommand();
> which gets us into a good state with no active subtransactions.
> 
> I'm not sure that those two are the best choices of xact.c
> entry points, but there's precedent for that in autovacuum.c
> among other places.

AFAICT, AbortOutOfAnyTransaction() also aborts subtransactions, so why 
do you suggest the separate handling of subtransactions?




pgsql-hackers by date:

Previous
From: Ashutosh Bapat
Date:
Subject: Re: Foreign join search stops on the first try
Next
From: Julien Rouhaud
Date:
Subject: Re: Add connection active, idle time to pg_stat_activity