From b03087f1746233bce0d1fbbb69789795296e779b Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Fri, 12 Jul 2024 15:31:27 +0900 Subject: [PATCH v2 1/4] Make write of pgstats file durable This switches the pgstats code to use durable_rename() rather than rename(), to make sure that the stats file is not lost should the host by plugged off after PostgreSQL has been stopped. --- src/backend/utils/activity/pgstat.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/backend/utils/activity/pgstat.c b/src/backend/utils/activity/pgstat.c index ed7baa6e04..66cda798fb 100644 --- a/src/backend/utils/activity/pgstat.c +++ b/src/backend/utils/activity/pgstat.c @@ -1478,12 +1478,9 @@ pgstat_write_statsfile(void) tmpfile))); unlink(tmpfile); } - else if (rename(tmpfile, statfile) < 0) + else if (durable_rename(tmpfile, statfile, LOG) < 0) { - ereport(LOG, - (errcode_for_file_access(), - errmsg("could not rename temporary statistics file \"%s\" to \"%s\": %m", - tmpfile, statfile))); + /* error logged already */ unlink(tmpfile); } } -- 2.45.2