postgres.git / summary / log / commit / refs

commit    a6598aac5295fcb169bd251cbc9fe125fa019a2d
Author:   Michael Paquier <michael@paquier.xyz>
Date:     Mon Oct 13 23:31:24 2025 +0000
First released in: 17.7, 18.1

    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 <li.evan.chao@gmail.com>
    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 28e58cd8ef4..82644d55d2e 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); } } [parent: b48ae226e6c3]