Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 1fe8cff

Browse files
committed
Merge branch 'PGPROEE9_6_CFS_385' into PGPROEE9_6
2 parents 610424b + ec53b1b commit 1fe8cff

File tree

8 files changed

+618
-329
lines changed

8 files changed

+618
-329
lines changed

src/backend/access/transam/xlog.c

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,6 @@ int CheckPointSegments;
128128
/* Estimated distance between checkpoints, in bytes */
129129
static double CheckPointDistanceEstimate = 0;
130130
static double PrevCheckPointDistance = 0;
131-
static bool SavedGCState = false;
132131

133132
/*
134133
* GUC support
@@ -9894,7 +9893,7 @@ do_pg_start_backup(const char *backupidstr, bool fast, TimeLineID *starttli_p,
98949893
XLogCtl->Insert.forcePageWrites = true;
98959894
WALInsertLockRelease();
98969895

9897-
SavedGCState = cfs_control_gc(false); /* disable GC during backup */
9896+
cfs_control_gc_lock(); /* disable GC during backup */
98989897

98999898
/* Ensure we release forcePageWrites if fail below */
99009899
PG_ENSURE_ERROR_CLEANUP(pg_start_backup_callback, (Datum) BoolGetDatum(exclusive));
@@ -10273,7 +10272,7 @@ pg_start_backup_callback(int code, Datum arg)
1027310272
}
1027410273
WALInsertLockRelease();
1027510274

10276-
cfs_control_gc(SavedGCState); /* Restore CFS GC activity */
10275+
cfs_control_gc_unlock(); /* Restore CFS GC activity */
1027710276
}
1027810277

1027910278
/*
@@ -10473,6 +10472,8 @@ do_pg_stop_backup(char *labelfile, bool waitforarchive, TimeLineID *stoptli_p)
1047310472
/* Clean up session-level lock */
1047410473
sessionBackupState = SESSION_BACKUP_NONE;
1047510474

10475+
cfs_control_gc_unlock(); /* Restore CFS GC activity */
10476+
1047610477
/*
1047710478
* Read and parse the START WAL LOCATION line (this code is pretty crude,
1047810479
* but we are not expecting any variability in the file format).
@@ -10682,8 +10683,6 @@ do_pg_stop_backup(char *labelfile, bool waitforarchive, TimeLineID *stoptli_p)
1068210683
ereport(NOTICE,
1068310684
(errmsg("WAL archiving is not enabled; you must ensure that all required WAL segments are copied through other means to complete the backup")));
1068410685

10685-
cfs_control_gc(SavedGCState); /* Restore CFS GC activity */
10686-
1068710686
/*
1068810687
* We're done. As a convenience, return the ending WAL location.
1068910688
*/
@@ -10717,6 +10716,8 @@ do_pg_abort_backup(void)
1071710716
XLogCtl->Insert.forcePageWrites = false;
1071810717
}
1071910718
WALInsertLockRelease();
10719+
10720+
cfs_control_gc_unlock(); /* Restore CFS GC activity */
1072010721
}
1072110722

1072210723
/*

0 commit comments

Comments
 (0)