Re: Leader backend hang on IPC/ParallelFinish when LWLock held at parallel query start

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Noah Misch <noah@leadboat.com>
Cc: Francesco Degrassi <francesco.degrassi@optionfactory.net>, pgsql-bugs@lists.postgresql.org
Date: 2024-11-08T16:46:36Z
Lists: pgsql-bugs

Attachments

Noah Misch <noah@leadboat.com> writes:
> On Thu, Nov 07, 2024 at 02:29:19PM -0500, Tom Lane wrote:
>> Ah, that could be a way out.  Stick an INTERRUPTS_CAN_BE_PROCESSED()
>> call somewhere in there?

> Exactly.  If !INTERRUPTS_CAN_BE_PROCESSED(), proceed as though no workers can
> be launched.

>> That could even allow us to revert the
>> planner change, which would simplify testing of the executor change.

> True.

Here's a proposed patch along that line.  I left the test case from
ac04aa84a alone, since it works perfectly well to test this way too.

We could argue about whether or not to revert the planner change.
But I'd prefer to do so, because as things stand it creates a
hard-to-reason-about source of plan instability.

			regards, tom lane

Commits

  1. Improve fix for not entering parallel mode when holding interrupts.

  2. Don't enter parallel mode when holding interrupts.

  3. Add has_largeobject_privilege function.