postgres.git / summary / log / commit / refs

commit    4bc15a8bfbc7856bc3426dc9ab99567eebbb64d3
Author:   Robert Haas <rhaas@postgresql.org>
Date:     Mon Mar 31 18:32:12 2014 +0000
First released in: 9.4.0, 9.2.9, 9.3.5

    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.


src/backend/storage/lmgr/lock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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; /* [parent: 0f95b723eb20]