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

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

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

apt.postgresql.org Repository Update
The following bug has been logged on the website:

Bug reference:      16081
Logged by:          cili
Email address:      [hidden email]
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.

Reply | Threaded
Open this post in threaded view
|

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

Daniel Gustafsson
> On 26 Oct 2019, at 06:32, PG Bug reporting form <[hidden email]> wrote:
>
> The following bug has been logged on the website:
>
> Bug reference:      16081
> Logged by:          cili
> Email address:      [hidden email]
> 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