Tighten up application of parallel mode checks.

Robert Haas <rhaas@postgresql.org>

Commit: d43e3adc7572d34988967475900dcd4f9e0a7b89
Author: Robert Haas <rhaas@postgresql.org>
Date: 2015-10-16T14:10:23Z
Releases: 9.5.0
Tighten up application of parallel mode checks.

Commit 924bcf4f16d54c55310b28f77686608684734f42 failed to enforce
parallel mode checks during the commit of a parallel worker, because
we exited parallel mode prior to ending the transaction so that we
could pop the active snapshot.  Re-establish parallel mode during
parallel worker commit.  Without this, it's far too easy for unsafe
actions during the pre-commit sequence to crash the server instead of
hitting the error checks as intended.

Just to be extra paranoid, adjust a couple of the sanity checks in
xact.c to check not only IsInParallelMode() but also
IsParallelWorker().

Files

PathChange+/−
src/backend/access/transam/xact.c modified +7 −5