aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2014-03-31 14:32:12 -0400
committerRobert Haas <rhaas@postgresql.org>2014-03-31 14:32:12 -0400
commit4bc15a8bfbc7856bc3426dc9ab99567eebbb64d3 (patch)
treeff70832de162c00c03e7a612a64a9700abd6a448
parent0f95b723eb207ca8fe2a0391b444db23b386617b (diff)
downloadpostgresql-4bc15a8bfbc7856bc3426dc9ab99567eebbb64d3.tar.gz
postgresql-4bc15a8bfbc7856bc3426dc9ab99567eebbb64d3.zip
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 6335129ac25..fd6cd0647ee 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;
-static FastPathStrongRelationLockData *FastPathStrongRelationLocks;
+static volatile FastPathStrongRelationLockData *FastPathStrongRelationLocks;
/*