pgsql: Lock the extension during ALTER EXTENSION ADD/DROP. - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Lock the extension during ALTER EXTENSION ADD/DROP.
Date
Msg-id E1m2cjK-0001ci-3E@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Lock the extension during ALTER EXTENSION ADD/DROP.

Although we were careful to lock the object being added or dropped,
we failed to get any sort of lock on the extension itself.  This
allowed the ALTER to proceed in parallel with a DROP EXTENSION,
which is problematic for a couple of reasons.  If both commands
succeeded we'd be left with a dangling link in pg_depend, which
would cause problems later.  Also, if the ALTER failed for some
reason, it might try to print the extension's name, and that could
result in a crash or (in older branches) a silly error message
complaining about extension "(null)".

Per bug #17098 from Alexander Lakhin.  Back-patch to all
supported branches.

Discussion: https://postgr.es/m/17098-b960f3616c861f83@postgresql.org

Branch
------
REL_10_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/1d49c888755b26d51fba03538ee2ce28478a86ad

Modified Files
--------------
src/backend/commands/extension.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)


pgsql-committers by date:

Previous
From: Thomas Munro
Date:
Subject: pgsql: Fix pgbench timestamp bugs.
Next
From: Michael Paquier
Date:
Subject: pgsql: pageinspect: Improve page_header() for pages of 32kB