Skip to content

Commit 3a8d333

Browse files
committed
PGPRO-1964: disable autovacum in snapshot
1 parent 9bebdd3 commit 3a8d333

File tree

3 files changed

+7
-0
lines changed

3 files changed

+7
-0
lines changed

src/backend/postmaster/autovacuum.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1702,7 +1702,10 @@ AutoVacWorkerMain(int argc, char *argv[])
17021702
/* And do an appropriate amount of work */
17031703
recentXid = ReadNewTransactionId();
17041704
recentMulti = ReadNextMultiXactId();
1705+
1706+
LWLockAcquire(DoAutovacuumLock, LW_SHARED);
17051707
do_autovacuum();
1708+
LWLockRelease(DoAutovacuumLock);
17061709
}
17071710

17081711
/*

src/backend/storage/file/snapfs.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,9 @@ sfs_switch_to_snapshot(SnapshotId snap_id)
167167
if (!SFS_IN_SNAPSHOT())
168168
sfs_checkpoint();
169169

170+
LWLockAcquire(DoAutovacuumLock, LW_EXCLUSIVE); /* prevenyt autovacuum in snapshot */
170171
ControlFile->active_snapshot = snap_id;
172+
LWLockRelease(DoAutovacuumLock);
171173
UpdateControlFile();
172174

173175
DropSharedBuffers();

src/backend/storage/lmgr/lwlocknames.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,3 +50,5 @@ OldSnapshotTimeMapLock 42
5050
BackendRandomLock 43
5151
LogicalRepWorkerLock 44
5252
CLogTruncationLock 45
53+
DoAutovacuumLock 46
54+

0 commit comments

Comments
 (0)