Thread: pgsql: Don't ERROR on PreallocXlogFiles() race condition.
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 Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/2b3e4672f7602a6bb46a0735a1b41b635508b290 Modified Files -------------- src/backend/access/transam/xlog.c | 79 +++++++++++++++++++++++++---------- src/backend/replication/walreceiver.c | 4 +- src/include/access/xlog.h | 2 +- 3 files changed, 58 insertions(+), 27 deletions(-)