BUG #19392: PG_UPGRADE is non-functional on Windows - Mailing list pgsql-bugs

From PG Bug reporting form
Subject BUG #19392: PG_UPGRADE is non-functional on Windows
Date
Msg-id 19392-d713ae74a25d81de@postgresql.org
Whole thread Raw
Responses Re: BUG #19392: PG_UPGRADE is non-functional on Windows
Re: BUG #19392: PG_UPGRADE is non-functional on Windows
List pgsql-bugs
The following bug has been logged on the website:

Bug reference:      19392
Logged by:          Jeff Laing
Email address:      jeff.laing@spatialnetworx.ai
PostgreSQL version: 18.1
Operating system:   Windows 11
Description:

After struggling with it for a while, I’ve come to the conclusion that
PG_UPGRADE is not functional on Windows.

Although there may be a permissions error still present, I can see that the
command-line construction is obviously in error.

The offending source code is in src\bin\pg_upgrade\server.c – in the 18
sources, it looks like this:

        /*
         * Use -b to disable autovacuum and logical replication launcher
         * (effective in PG17 or later for the latter).
         */
        snprintf(cmd, sizeof(cmd),
                         "\"%s/pg_ctl\" -w -l \"%s/%s\" -D \"%s\" -o \"-p %d
-b%s %s%s\" start",
                         cluster->bindir,
                         log_opts.logdir,
                         SERVER_LOG_FILE, cluster->pgconfig, cluster->port,
                         pgoptions.data,
                         cluster->pgopts ? cluster->pgopts : "",
socket_string);

This results in command-lines that look like:

        "C:/postgresql16/bin/pg_ctl" -w -l
"C:/postgresql18/data/pg_upgrade_output.d/20260204T130353.043/log/pg_upgrade_server.log"
-D "C:/postgresql16/data" -o "-p 5432 -b " start >>
"C:/postgresql18/data/pg_upgrade_output.d/20260204T130353.043/log/pg_upgrade_server_start.log"
2>&1

connection to server at "localhost" (::1), port 5432 failed: fe_sendauth: no
password supplied
could not connect to source postmaster started with the command:
"C:/postgresql16/bin/pg_ctl" -w -l
"C:/postgresql18/data/pg_upgrade_output.d/20260204T130353.043/log/pg_upgrade_server.log"
-D "C:/postgresql16/data" -o "-p 5432 -b " start
Failure, exiting

Note the quoting around the -o, -p and -b arguments.
There should perhaps be TWO double-quotes after -o or it should not be
present.
There should not be a double-quote after -b

The problem appears as far back as the 16 sources.





pgsql-bugs by date:

Previous
From: Álvaro Herrera
Date:
Subject: Re: Re: Re: BUG #19351: in pg18.1,when not null exists in the table , and add constraint problem.
Next
From: "David G. Johnston"
Date:
Subject: Re: BUG #19392: PG_UPGRADE is non-functional on Windows