aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/array_expanded.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2016-01-03 20:53:35 -0500
committerTom Lane <tgl@sss.pgh.pa.us>2016-01-03 20:53:35 -0500
commitf47b602df80d7647ca2e71c86f7228b1bf5bf9f3 (patch)
tree36199e9837d22fbc3ad76d96c45001c369d270ef /src/backend/utils/adt/array_expanded.c
parentc1611db01fec587525e88270854c4b993846dcb3 (diff)
downloadpostgresql-f47b602df80d7647ca2e71c86f7228b1bf5bf9f3.tar.gz
postgresql-f47b602df80d7647ca2e71c86f7228b1bf5bf9f3.zip
Fix bogus lock release in RemovePolicyById and RemoveRoleFromObjectPolicy.
Can't release the AccessExclusiveLock on the target table until commit. Otherwise there is a race condition whereby other backends might service our cache invalidation signals before they can actually see the updated catalog rows. Just to add insult to injury, RemovePolicyById was closing the rel (with incorrect lock drop) and then passing the now-dangling rel pointer to CacheInvalidateRelcache. Probably the reason this doesn't fall over on CLOBBER_CACHE buildfarm members is that some outer level of the DROP logic is still holding the rel open ... but it'd have bit us on the arse eventually, no doubt.
Diffstat (limited to 'src/backend/utils/adt/array_expanded.c')
0 files changed, 0 insertions, 0 deletions