Re: Considering signal handling in plpython again - Mailing list pgsql-hackers

From Hubert Zhang
Subject Re: Considering signal handling in plpython again
Date
Msg-id CAB0yremWeycDgpZFOuoAotW0tTk1Rf=9CgvAxrVZBRnUmzRgcA@mail.gmail.com
Whole thread Raw
In response to Re: Considering signal handling in plpython again  (Heikki Linnakangas <hlinnaka@iki.fi>)
Responses Re: Considering signal handling in plpython again  (Heikki Linnakangas <hlinnaka@iki.fi>)
List pgsql-hackers
For nested SPI case, one option is to turn off the bool variable when entering the SPI function(PLy_spi_prepare, PLy_spi_execute, PLy_cursor etc.)
and turn on the bool variable again when exiting the SPI function.
If it's OK, we could follow this way to update Heikki's patch.

--Hubert

On Fri, May 11, 2018 at 9:28 PM, Heikki Linnakangas <hlinnaka@iki.fi> wrote:


On 11 May 2018 10:01:56 EEST, Hubert Zhang <hzhang@pivotal.io> wrote:
>2. Add a flag in hook function to indicate whether to call
>Py_AddPendingCall.
>This is straightforward.(I prefer it)

Yeah, that's what I had in mind, too. A global bool variable that's set when you enter libpython, and cleared on return. Need to handle nesting, i.e if a PL/python function runs a slow query with SPI, and cancellation happens during that. And the case that the SPI query calls another PL/python function.

- Heikki



--
Thanks

Hubert Zhang

pgsql-hackers by date:

Previous
From: Pavan Deolasee
Date:
Subject: Re: PANIC during crash recovery of a recently promoted standby
Next
From: Daniel Gustafsson
Date:
Subject: Incorrect path in header comment identification