On Thu, May 24, 2012 at 08:34:01PM -0400, Bruce Momjian wrote: > On Fri, May 25, 2012 at 11:48:53AM +1200, Edmund Horner wrote: > > It still fails (when run in verbose mode): > > > > Creating catalog dump > > ""c:\ehorner\pgsql\bin/pg_dumpall" --port 50432 --username "ehorner" > > --schema-only --binary-upgrade --verbose > "pg_upgrade_dump_all.sql" > > 2>> "pg_upgrade_utility.log"" > > ok > > ""c:\ehorner\pgsql-old\bin/pg_ctl" -w -l "pg_upgrade_server2.log" > > -D "c:\ehorner\pgdata-old" -o"" stop >> "pg_upgrade_server2.log" > > 2>&1" > > The process cannot access the file because it is being used by > > another process. > > *failure* > > There were problems executing """c:\ehorner\pgsql-old\bin/pg_ctl" > > -w -l "pg_upgrade_server2.log" -D "c:\ehorner\pgdata-old" -o "" stop > > >> "pg_upgrade_server2.log" 2>&1"" > > Bingo, this is exactly where I expected it to fail. I am attaching a > new, applied patch that creates files pg_upgrade_server_start.log and > pg_upgrade_server_stop.log to log the pg_ctl start/stop stdout > seperately. This should fix the error. Thanks so much for testing. I > believe someone will generate a new binary for testing. > > > I.e. I think pg_ctl wrote the last couple of lines, and then the two > > cmd.exe were unable to write anything more since presumably it's still > > open. > > > > So is this the problem you predicted above with pg_ctl stop? > > Yep, I think we are good now. I never expected this behavior, but it > now makes sense.
Ah, turns out I only need one extra log file on Windows, not two, because I can reuse the utility file for pg_ctl stop. The original beta1 code usesd the utility file for pg_ctl stop and start, which is what caused the problem. Applied patch attached. -- Bruce Momjian <br...@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. +
diff --git a/contrib/pg_upgrade/pg_upgrade.c b/contrib/pg_upgrade/pg_upgrade.c new file mode 100644 index 3df3836..465ecdd *** a/contrib/pg_upgrade/pg_upgrade.c --- b/contrib/pg_upgrade/pg_upgrade.c *************** OSInfo os_info; *** 58,65 **** char *output_files[] = { SERVER_LOG_FILE, #ifdef WIN32 SERVER_START_LOG_FILE, - SERVER_STOP_LOG_FILE, #endif RESTORE_LOG_FILE, UTILITY_LOG_FILE, --- 58,65 ---- char *output_files[] = { SERVER_LOG_FILE, #ifdef WIN32 + /* unique file for pg_ctl start */ SERVER_START_LOG_FILE, #endif RESTORE_LOG_FILE, UTILITY_LOG_FILE, diff --git a/contrib/pg_upgrade/pg_upgrade.h b/contrib/pg_upgrade/pg_upgrade.h new file mode 100644 index 5891997..26aa7bb *** a/contrib/pg_upgrade/pg_upgrade.h --- b/contrib/pg_upgrade/pg_upgrade.h *************** extern char *output_files[]; *** 63,69 **** #define SERVER_STOP_LOG_FILE SERVER_LOG_FILE #else #define SERVER_START_LOG_FILE "pg_upgrade_server_start.log" ! #define SERVER_STOP_LOG_FILE "pg_upgrade_server_stop.log" #endif --- 63,70 ---- #define SERVER_STOP_LOG_FILE SERVER_LOG_FILE #else #define SERVER_START_LOG_FILE "pg_upgrade_server_start.log" ! /* pg_ctl stop doesn't keep the log file open, so reuse UTILITY_LOG_FILE */ ! #define SERVER_STOP_LOG_FILE UTILITY_LOG_FILE #endif
-- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs