]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Lock the extension during ALTER EXTENSION ADD/DROP.
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 11 Jul 2021 16:54:24 +0000 (12:54 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 11 Jul 2021 16:54:24 +0000 (12:54 -0400)
commit92340ba5a795ad250fb797168e08ac8ed7838613
tree4c2ae0f7aa5324e98822f239a63c08a631ded095
parent5b1621d2fb736bcec58114faf035e6ad9bd64a1d
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
src/backend/commands/extension.c