From: | Bruce Momjian <bruce(at)momjian(dot)us> |
---|---|
To: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
Cc: | Magnus Hagander <magnus(at)hagander(dot)net>, Peter Eisentraut <peter_e(at)gmx(dot)net>, Fujii Masao <masao(dot)fujii(at)gmail(dot)com>, "Mr(dot) Aaron W(dot) Swenson" <titanofold(at)gentoo(dot)org>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Bug with pg_ctl -w/wait and config-only directories |
Date: | 2011-10-04 03:04:36 |
Message-ID: | 201110040304.p9434aP12616@momjian.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Bruce Momjian wrote:
> Alvaro Herrera wrote:
> >
> > Excerpts from Bruce Momjian's message of lun oct 03 17:28:53 -0300 2011:
> > >
> > > Alvaro Herrera wrote:
> >
> > > > Well, we have the Gentoo developer in this very thread. I'm sure they
> > > > would fix their command line if we gave them a pg_ctl that worked.
> > > > Surely the package that contains the init script also contains pg_ctl,
> > > > so they would both be upgraded simultaneously.
> > >
> > > What is the fix? If they started the server by using --data-directory,
> > > pg_ctl stop has no way to find the postmaster.pid file, and hence stop
> > > the server. Are you suggesting we remove this ability?
> >
> > I am suggesting they don't start it by using --data-directory in the
> > first place.
>
> Agreed. If you remove that, the logical problem goes away and it
> becomes a simple problem of dumping the contents of postgresql.conf and
> having pg_ctl (and pg_upgrade) use that. Let me look at how much code
> that would take.
OK, here is a patch that adds a -C option to the postmaster so any
config variable can be dumped, even while the server is running (there
is no security check because we don't have a user name at this point),
e.g.:
postgres -D /pg_upgrade/tmp -C data_directory
/u/pg/data
It also modifies pg_ctl to use this feature. It works fine for pg_ctl
-w start/stop with a config-only directory, so this is certainly in the
right direction. You can also use pg_ctl -o '--data_directory=/abc' and
it will be understood:
pg_ctl -o '--data_directory=/u/pg/data' -D tmp start
If you used --data_directory to start the server, you will need to use
--data_directory to stop it, which seems reasonable.
Patch attached. This was much simpler than I thought. :-)
--
Bruce Momjian <bruce(at)momjian(dot)us> http://momjian.us
EnterpriseDB http://enterprisedb.com
+ It's impossible for everything to be true. +
Attachment | Content-Type | Size |
---|---|---|
pg_ctl | text/x-diff | 6.5 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Fujii Masao | 2011-10-04 04:20:17 | Re: Tracking latest timeline in standby mode |
Previous Message | Robert Haas | 2011-10-04 02:22:54 | Re: [v9.2] make_greater_string() does not return a string in some cases |