From 1c05fe11abb6a1588b158e3f39b668053e24cdae Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Tue, 14 Oct 2025 08:30:54 +0900 Subject: [PATCH] Fix version number calculation for data folder flush in pg_combinebackup The version number calculated by read_pg_version_file() is multiplied once by 10000, to be able to do comparisons based on PG_VERSION_NUM or equivalents with a minor version included. However, the version number given sync_pgdata() was multiplied by 10000 a second time, leading to an overestimated number. This issue was harmless (still incorrect) as pg_combinebackup does not support versions of Postgres older than v10, and sync_pgdata() only includes a version check due to the rename of pg_xlog/ to pg_wal/. This folder rename happened in the development cycle of v10. This would become a problem if in the future sync_pgdata() is changed to have more version-specific checks. Oversight in dc212340058b, so backpatch down to v17. Reviewed-by: Chao Li Discussion: https://postgr.es/m/aOil5d0y87ZM_wsZ@paquier.xyz Backpatch-through: 17 --- src/bin/pg_combinebackup/pg_combinebackup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/pg_combinebackup/pg_combinebackup.c b/src/bin/pg_combinebackup/pg_combinebackup.c index f5cef99f627..a330c09d939 100644 --- a/src/bin/pg_combinebackup/pg_combinebackup.c +++ b/src/bin/pg_combinebackup/pg_combinebackup.c @@ -425,7 +425,7 @@ main(int argc, char *argv[]) else { pg_log_debug("recursively fsyncing \"%s\"", opt.output); - sync_pgdata(opt.output, version * 10000, opt.sync_method, true); + sync_pgdata(opt.output, version, opt.sync_method, true); } }