Re: fixing pg_ctl with relative paths

Поиск
Список
Период
Сортировка
От Josh Kupershmidt
Тема Re: fixing pg_ctl with relative paths
Дата
Msg-id CAK3UJRE0tQMv_NfwzW39rCD_x7-NAv=W4pLP6cJy8yVo2jbJcw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: fixing pg_ctl with relative paths  (Fujii Masao <masao.fujii@gmail.com>)
Ответы Re: fixing pg_ctl with relative paths  (Bruce Momjian <bruce@momjian.us>)
Re: Re: fixing pg_ctl with relative paths  (Chapman Flack <chap@anastigmatix.net>)
Список pgsql-hackers
On Thu, Jun 27, 2013 at 11:47 AM, Fujii Masao <masao.fujii@gmail.com> wrote:
> On Thu, Jun 27, 2013 at 10:36 AM, Josh Kupershmidt <schmiddy@gmail.com> wrote:
>> On Wed, Jun 26, 2013 at 12:22 PM, Fujii Masao <masao.fujii@gmail.com> wrote:
>>> Though this is a corner case, the patch doesn't seem to handle properly the case
>>> where "-D" appears as other option value, e.g., -k option value, in
>>> postmaster.opts
>>> file.
>>
>> Could I see a command-line example of what you mean?
>
> postmaster -k "-D", for example. Of course, it's really a corner case :)

Oh, I see. I was able to trip up strip_datadirs() with something like

$ PGDATA="/my/data/" postmaster -k "-D" -S 100 &
$ pg_ctl -D /my/data/ restart

that example causes pg_ctl to fail to start the server after stopping
it, although perhaps you could even trick the server into starting
with the wrong options. Of course, similar problems exists today in
other cases, such as with the relative paths issue this patch is
trying to address, or a datadir containing embedded quotes.

I am eager to see the relative paths issue fixed, but maybe we need to
bite the bullet and sort out the escaping of command-line options in
the rest of pg_ctl first, so that a DataDir like "/tmp/here's a \"
quote" can consistently be used by pg_ctl {start|stop|restart} before
we can fix this wart.

Josh



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Andreas Karlsson
Дата:
Сообщение: Re: PL/Lua (was: plpython implementation)
Следующее
От: Jeff Davis
Дата:
Сообщение: Re: Eliminating PD_ALL_VISIBLE, take 2