Re: [BUG] pg_dump blocked

Gilles DAROLD <gilles@darold.net>

From: Gilles Darold <gilles@darold.net>
To: Tom Lane <tgl@sss.pgh.pa.us>, Gilles Darold <gilles@darold.net>
Cc: PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2022-11-19T06:30:59Z
Lists: pgsql-hackers

Attachments

Le 17/11/2022 à 17:59, Tom Lane a écrit :
> Gilles Darold <gilles@darold.net> writes:
>> I have an incorrect behavior with pg_dump prior PG version 15. With
>> PostgreSQL 15, thanks to commit e3fcbbd623b9ccc16cdbda374654d91a4727d173
>> the problem is gone but for older versions it persists with locks on
>> partitioned tables.
> I didn't want to back-patch e3fcbbd62 at the time, but it's probably aged
> long enough now to be safe to back-patch.  If we do anything here,
> it should be to back-patch the whole thing, else we've only partially
> fixed the issue.


Here are the different patched following the PostgreSQL version from 11 
to 14, they should apply on the corresponding stable branches. The 
patches only concern the move of the unsafe functions, 
pg_get_partkeydef() and pg_get_expr(). They should all apply without 
problem on their respective branch, pg_dump tap regression test passed 
on all versions.

Regards,

-- 
Gilles Darold

Commits

  1. pg_dump: avoid unsafe function calls in getPolicies().

  2. Postpone calls of unsafe server-side functions in pg_dump.