BUG #16081: pg_upgrade is failed if a fake cmd.exe exist in the current directory.

Started by PG Bug reporting formover 6 years ago2 messagesbugs
Jump to latest
#1PG Bug reporting form
noreply@postgresql.org

The following bug has been logged on the website:

Bug reference: 16081
Logged by: cili
Email address: cilizili@protonmail.com
PostgreSQL version: 12.0
Operating system: Microsoft Windows [Version 10.0.18362.418]
Description:

Similar to the case of pg_ctl. If a fake cmd.exe exits in current directory,
pg_upgrade is failed to start.

Instructions:
# cd %TEMP%
# "c:\Program Files\PostgreSQL\12\bin\pg_ctl.exe" initdb -D test
# set PGDATAOLD=%TEMP%\test
# set PGDATANEW=%TEMP%\test
# set PGBINOLD=c:\Program Files\PostgreSQL\12\bin
# set PGBINNEW=c:\Program Files\PostgreSQL\12\bin
# copy %windir%\system32\calc.exe cmd.exe
# "c:\Program Files\PostgreSQL\12\bin\pg_upgrade"
Performing Consistency Checks
-----------------------------
Checking cluster versions ok

*failure*
Consult the last few lines of "pg_upgrade_server_start.log" or
"pg_upgrade_server.log" for
the probable cause of the failure.

Expected:
The database is upgraded.

Actual:
The Windows calculator is started and the upgrade command is failed.

#2Daniel Gustafsson
daniel@yesql.se
In reply to: PG Bug reporting form (#1)
Re: BUG #16081: pg_upgrade is failed if a fake cmd.exe exist in the current directory.

On 26 Oct 2019, at 06:32, PG Bug reporting form <noreply@postgresql.org> wrote:

The following bug has been logged on the website:

Bug reference: 16081
Logged by: cili
Email address: cilizili@protonmail.com
PostgreSQL version: 12.0
Operating system: Microsoft Windows [Version 10.0.18362.418]
Description:

Similar to the case of pg_ctl. If a fake cmd.exe exits in current directory,
pg_upgrade is failed to start.

Instructions:
# cd %TEMP%
# "c:\Program Files\PostgreSQL\12\bin\pg_ctl.exe" initdb -D test
# set PGDATAOLD=%TEMP%\test
# set PGDATANEW=%TEMP%\test
# set PGBINOLD=c:\Program Files\PostgreSQL\12\bin
# set PGBINNEW=c:\Program Files\PostgreSQL\12\bin
# copy %windir%\system32\calc.exe cmd.exe
# "c:\Program Files\PostgreSQL\12\bin\pg_upgrade”

pg_upgrade aborting an upgrade in a broken environment seems like proper
behavior. Not knowing Windows I might be missing something, but when is this
ever a legitimate usecase?

cheers ./daniel