Re: Bug with pg_ctl -w/wait and config-only directories
Bruce Momjian <bruce@momjian.us>
From: Bruce Momjian <bruce@momjian.us>
To: Alvaro Herrera <alvherre@commandprompt.com>
Cc: Magnus Hagander <magnus@hagander.net>, Peter Eisentraut <peter_e@gmx.net>, Fujii Masao <masao.fujii@gmail.com>, "Mr. Aaron W. Swenson" <titanofold@gentoo.org>, Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2011-10-04T03:04:36Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix nested PlaceHolderVar expressions that appear only in targetlists.
- ceaf5052c6a7 8.4.9 cited
Attachments
- pg_ctl (text/x-diff) patch
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@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. +