Re: backend hangs at immediate shutdown (Re: Back-branch update releases coming in a couple weeks)

MauMau <maumau307@gmail.com>

From: "MauMau" <maumau307@gmail.com>
To: "Tom Lane" <tgl@sss.pgh.pa.us>, "Andres Freund" <andres@2ndquadrant.com>
Cc: "Peter Eisentraut" <peter_e@gmx.net>, <pgsql-hackers@postgreSQL.org>
Date: 2013-02-07T15:00:50Z
Lists: pgsql-hackers

Attachments

Hello, Tom-san, folks,

From: "Tom Lane" <tgl@sss.pgh.pa.us>
> I think if we want to make it bulletproof we'd have to do what the
> OP suggested and switch to SIGKILL.  I'm not enamored of that for the
> reasons I mentioned --- but one idea that might dodge the disadvantages
> is to have the postmaster wait a few seconds and then SIGKILL any
> backends that hadn't exited.
>
> I think if we want something that's actually trustworthy, the
> wait-and-then-kill logic has to be in the postmaster.


I'm sorry to be late to submit a patch.  I made a fix according to the above 
comment.  Unfortunately, it was not in time for 9.1.8 release...  I hope 
this patch will be included in 9.1.9.

Could you review the patch?  The summary of the change is:
1. postmaster waits for children to terminate when it gets an immediate 
shutdown request, instead of exiting.

2. postmaster sends SIGKILL to remaining children if all of the child 
processes do not terminate within 10 seconds since the start of immediate 
shutdown or FatalError condition.

3. On Windows, kill(SIGKILL) calls TerminateProcess().

4. Documentation change to describe the behavior of immediate shutdown.


Regards
MauMau

Commits

  1. Consistency check should compare last record replayed, not last record read.

  2. Update minimum recovery point on truncation.