From: Robert Haas Date: Mon, 31 Mar 2014 18:32:12 +0000 (-0400) Subject: Mark FastPathStrongRelationLocks volatile. X-Git-Tag: REL9_3_5~129 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e452019d8e29eb52dd755ba307b96a42f89da550;p=thirdparty%2Fpostgresql.git Mark FastPathStrongRelationLocks volatile. Otherwise, the compiler might decide to move modifications to data within this structure outside the enclosing SpinLockAcquire / SpinLockRelease pair, leading to shared memory corruption. This may or may not explain a recent lmgr-related buildfarm failure on prairiedog, but it needs to be fixed either way. --- diff --git a/src/backend/storage/lmgr/lock.c b/src/backend/storage/lmgr/lock.c index 3e761027946..0f218280090 100644 --- a/src/backend/storage/lmgr/lock.c +++ b/src/backend/storage/lmgr/lock.c @@ -238,7 +238,7 @@ typedef struct uint32 count[FAST_PATH_STRONG_LOCK_HASH_PARTITIONS]; } FastPathStrongRelationLockData; -FastPathStrongRelationLockData *FastPathStrongRelationLocks; +volatile FastPathStrongRelationLockData *FastPathStrongRelationLocks; /*