summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Haas2014-03-31 18:32:12 +0000
committerRobert Haas2014-03-31 18:38:01 +0000
commite452019d8e29eb52dd755ba307b96a42f89da550 (patch)
tree0eebaef71189fce0b46ddccb8b897c9b3521bc3c
parentac2063ade566deb03e72e3da52cf472e125708b7 (diff)
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.
-rw-r--r--src/backend/storage/lmgr/lock.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/backend/storage/lmgr/lock.c b/src/backend/storage/lmgr/lock.c
index 3e76102794..0f21828009 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;
/*