summaryrefslogtreecommitdiff
path: root/src/include/access/xlog.h
diff options
context:
space:
mode:
authorNoah Misch <noah@leadboat.com>2021-06-28 18:34:56 -0700
committerNoah Misch <noah@leadboat.com>2021-06-28 18:34:56 -0700
commit2b3e4672f7602a6bb46a0735a1b41b635508b290 (patch)
tree0fd8bf82ed99d38511588924eefe47067eef3044 /src/include/access/xlog.h
parent421484f79c0b80209fa766eb00dbc2453a753273 (diff)
Don't ERROR on PreallocXlogFiles() race condition.
Before a restartpoint finishes PreallocXlogFiles(), a startup process KeepFileRestoredFromArchive() call can unlink the preallocated segment. If a CHECKPOINT sql command had elicited the restartpoint experiencing the race condition, that sql command failed. Moreover, the restartpoint omitted its log_checkpoints message and some inessential resource reclamation. Prevent the ERROR by skipping open() of the segment. Since these consequences are so minor, no back-patch. Discussion: https://postgr.es/m/20210202151416.GB3304930@rfd.leadboat.com
Diffstat (limited to 'src/include/access/xlog.h')
-rw-r--r--src/include/access/xlog.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/include/access/xlog.h b/src/include/access/xlog.h
index d8b8f59c4bd..7510e882287 100644
--- a/src/include/access/xlog.h
+++ b/src/include/access/xlog.h
@@ -296,7 +296,7 @@ extern XLogRecPtr XLogInsertRecord(struct XLogRecData *rdata,
extern void XLogFlush(XLogRecPtr RecPtr);
extern bool XLogBackgroundFlush(void);
extern bool XLogNeedsFlush(XLogRecPtr RecPtr);
-extern int XLogFileInit(XLogSegNo segno, bool *added);
+extern int XLogFileInit(XLogSegNo segno);
extern int XLogFileOpen(XLogSegNo segno);
extern void CheckXLogRemoved(XLogSegNo segno, TimeLineID tli);