]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Defer restoration of libraries in parallel workers.
authorThomas Munro <tmunro@postgresql.org>
Thu, 20 Sep 2018 02:02:40 +0000 (14:02 +1200)
committerThomas Munro <tmunro@postgresql.org>
Thu, 20 Sep 2018 02:21:57 +0000 (14:21 +1200)
commitde4fe83c7e6d14d996babec814c4fc12490889ef
treeb0c4099a0f10fd60a7e2043608f412109c2a3d3a
parent265ac024572b639eb315eab1b68faf45bcc8f4f2
Defer restoration of libraries in parallel workers.

Several users of extensions complained of crashes in parallel workers
that turned out to be due to syscache access from their _PG_init()
functions.  Reorder the initialization of parallel workers so that
libraries are restored after the caches are initialized, and inside a
transaction.

This was reported in bug #15350 and elsewhere.  We don't consider it
to be a bug: extensions shouldn't do that, because then they can't be
used in shared_preload_libraries.  However, it's a fairly obscure
hazard and these extensions worked in practice before parallel query
came along.  So let's make it work.  Later commits might add a warning
message and eventually an error.

Back-patch to 9.6, where parallel query landed.

Author: Thomas Munro
Reviewed-by: Amit Kapila
Reported-by: Kieran McCusker, Jimmy
Discussion: https://postgr.es/m/153512195228.1489.8545997741965926448%40wrigleys.postgresql.org
src/backend/access/transam/parallel.c