Thread: pg_ctl inappropriately timing out?

pg_ctl inappropriately timing out?

From
Josh Berkus
Date:
Folks:

Issue: pg_ctl seems to be prematurely timing out.
Version: 8.0.3
Severity: Annoying
Description:
1. Do an immense load on a database, like 2.5gb.
2. Right after the COPY finishes, send a pg_ctl -m fast stop to the server.
3. You will get:
    pg_ctl: postmaster does not shut down

What Seems To Be Happening:
When you call pg_ctl --stop, the WAL is still writing out to the database
and postmaster won't shut down until it's done, which can take a couple
minutes.  In the meantime, pg_ctl is timing out and prematurely reporting
failure.

Resolution:
Not sure, really.  Is there some way for pg_ctl to intelligently detect
this situation?  To set a timeout value for pg_ctl via a command-line
option?

--
--Josh

Josh Berkus
Aglio Database Solutions
San Francisco

Re: pg_ctl inappropriately timing out?

From
Alvaro Herrera
Date:
On Tue, Jun 07, 2005 at 04:16:49PM -0700, Josh Berkus wrote:
> Folks:
>
> Issue: pg_ctl seems to be prematurely timing out.
> Version: 8.0.3
> Severity: Annoying
> Description:
> 1. Do an immense load on a database, like 2.5gb.
> 2. Right after the COPY finishes, send a pg_ctl -m fast stop to the server.
> 3. You will get:
>     pg_ctl: postmaster does not shut down
>
> What Seems To Be Happening:
> When you call pg_ctl --stop, the WAL is still writing out to the database
> and postmaster won't shut down until it's done, which can take a couple
> minutes.  In the meantime, pg_ctl is timing out and prematurely reporting
> failure.
>
> Resolution:
> Not sure, really.  Is there some way for pg_ctl to intelligently detect
> this situation?  To set a timeout value for pg_ctl via a command-line
> option?

Is there any way for pg_ctl to detect a "server is shutting down"
message?  Not sure what it'd do with it though ...

--
Alvaro Herrera (<alvherre[a]surnet.cl>)
"Escucha y olvidarás; ve y recordarás; haz y entenderás" (Confucio)

Re: pg_ctl inappropriately timing out?

From
Tom Lane
Date:
Alvaro Herrera <alvherre@surnet.cl> writes:
> On Tue, Jun 07, 2005 at 04:16:49PM -0700, Josh Berkus wrote:
>> When you call pg_ctl --stop, the WAL is still writing out to the database
>> and postmaster won't shut down until it's done, which can take a couple
>> minutes.

> Is there any way for pg_ctl to detect a "server is shutting down"
> message?  Not sure what it'd do with it though ...

It strikes me that the server shouldn't ever get a couple minutes behind
on writing dirty buffers; this seems more like a bgwriter configuration
issue than pg_ctl's fault.  Consider that in a standard Unix
configuration you will get about 20 seconds between SIGTERM and SIGKILL
when init wants to shut you down ...

            regards, tom lane

Re: pg_ctl inappropriately timing out?

From
Josh Berkus
Date:
Tom,

> It strikes me that the server shouldn't ever get a couple minutes behind
> on writing dirty buffers; this seems more like a bgwriter configuration
> issue than pg_ctl's fault.  Consider that in a standard Unix
> configuration you will get about 20 seconds between SIGTERM and SIGKILL
> when init wants to shut you down ...

Well, I can run an actual timer if you like.   But it's definitely more than
20 seconds.   And we're using the default bgwriter config, perhaps I should
set it to 0?

--
Josh Berkus
Aglio Database Solutions
San Francisco