Re: [BUGS] BUG #14199: The pg_ctl status check on server start is not compatible with the silent_mode=on

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: sobomax(at)freebsd(dot)org
Cc: pgsql-bugs(at)postgresql(dot)org, pgsql-hackers(at)postgresql(dot)org
Subject: Re: [BUGS] BUG #14199: The pg_ctl status check on server start is not compatible with the silent_mode=on
Date: 2016-06-18 15:51:10
Message-ID: 13340.1466265070@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs pgsql-hackers

sobomax(at)freebsd(dot)org writes:
> There is a problem with pg_ctl when it tries to start server with the
> "silent_mode=on" option enabled in postgresql.conf. Specifically, this
> option causes postgres to fork once more after start. There are two problems
> caused by that:
> 1. The pm_pid recorded by the pg_ctl when doing fork+execve no longer
> matches the PID in the postmaster.pid file. This causes pg_ctl bail out
> immediately.
> 2. Method that pg_ctl uses to poll if postgres exited prematurely no longer
> works.

> For some reason it was not a problem until recently.

After reviewing recent commits, I realize that this was caused by
https://git.postgresql.org/gitweb/?p=postgresql.git&a=commitdiff&h=c869a7d5b
While generally that was a good thing, in hindsight it's obvious that
it doesn't work with silent_mode. That's a non-issue in 9.2 and later
since silent_mode is gone anyway, but it is an issue for 9.1.

> Attached patch fixes that issue by changing the way pg_ctl polls on the
> child status.

There is no need of this complication in >= 9.2. We could maybe apply it
in the 9.1 branch only, but I am quite loath to accept such a nontrivial
and portability-sensitive change that way. The main reason being that
9.1 is almost EOL: its next minor release might well be its last. If
there's anything wrong with this approach, we may not find out about it
until after 9.1 is out of support and won't get patched anymore.

What seems like a more conservative answer to me is to revert c869a7d5b
in 9.1 only, and address the buildfarm stability issue it sought to
resolve by increasing the fixed timeout from 5 seconds to, say, 10.

Thoughts?

regards, tom lane

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message liveloveprosper 2016-06-19 02:58:54 BUG #14200: Cannot create a table named 'user'
Previous Message Maxim Sobolev 2016-06-18 04:33:29 BUG #14199: The pg_ctl status check on server start is not compatible with the silent_mode=on

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2016-06-18 15:56:51 Re: forcing a rebuild of the visibility map
Previous Message Michael Paquier 2016-06-18 12:08:52 Re: forcing a rebuild of the visibility map