On Tue, Jan 29, 2013 at 04:34:50PM -0500, Peter Eisentraut wrote: > On 1/28/13 9:29 PM, Bruce Momjian wrote: > > pg_upgrade uses that to find out of the server was already running or if > > we started it. This is to start the server to remove the > > postmaster.pid file. > > It's currently a bit missed up anyway. pg_ctl start is successful if > the server is already started, but pg_ctl -w start fails.
Yeah, that is odd: # pg_ctl start pg_ctl: another server might be running; trying to start server anyway server starting # FATAL: lock file "postmaster.pid" already exists HINT: Is another postmaster (PID 14144) running in data directory "/u/pgsql/data"? # echo $? 0 # pg_ctl -w start pg_ctl: another server might be running; trying to start server anyway waiting for server to start....FATAL: lock file "postmaster.pid" already exists HINT: Is another postmaster (PID 14144) running in data directory "/u/pgsql/data"? .... pg_ctl: this data directory appears to be running a pre-existing postmaster stopped waiting pg_ctl: could not start server Examine the log output. # echo $? 1 It is because pg_ctl without -w doesn't want to see if the start was successful. Fortunately, pg_upgrade always uses -w. > What pg_upgrade is doing doesn't sound particularly safe, for example > when something is concurrently starting or stopping the server. Yes, there is always the risk of someone starting the server while it is down during pg_upgrade; we assume the user has control of others starting the server during pg_upgrade. > > Also, no one has explained how not knowing if -o > > options were used was a safe. > > Hmm, good point. But we already have this problem -- see above. Yes, also true. I guess I can only stay it works for -w. :-( -- Bruce Momjian <br...@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. + -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers