Skip site navigation (1) Skip section navigation (2)

Re: pending patch: Re: HS/SR and smart shutdown

From: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
To: Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: Simon Riggs <simon(at)2ndquadrant(dot)com>, Josh Berkus <josh(at)agliodbs(dot)com>, Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: pending patch: Re: HS/SR and smart shutdown
Date: 2010-04-13 13:18:25
Message-ID: m2g3f0b79eb1004130618n230e0b63j9fa20d939a205a1e@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-hackers
On Thu, Apr 1, 2010 at 8:24 PM, Robert Haas <robertmhaas(at)gmail(dot)com> wrote:
> On Thu, Apr 1, 2010 at 7:18 AM, Simon Riggs <simon(at)2ndquadrant(dot)com> wrote:
>> I'm not willing to investigate this further myself at this stage. This
>> looks like risk for little benefit.
>
> That's kind of what I figured.  I'll see about fixing up Fujii-san's
> patch and documenting the behavior; but it won't happen before the
> weekend because I'm going to be out of town.

I found the bug which makes smart shutdown get stuck for a while:

If there is no WAL file available in the standby, walreceiver might
be invoked before we have reached the PM_RECOVERY state. We switch
to the PM_RECOVERY state after reading the checkpoint record pointed
out in the pg_control file. If it's not found, we are in the PM_INIT
or PM_START state and start walreceiver to read it from the primary.

If smart shutdown is requested at that point, we cannot switch to
the PM_WAIT_READONLY state because pmdie() doesn't allow that. So
the SIGTERM is never sent to walreceiver, and smart shutdown would
get stuck.

If the current state is either PM_INIT or PM_START, it's guaranteed
that there is no regular backend, so we should kill walreceiver as
soon as smart shutdown is requested, I think. The attached patch
does that.

Regards,

-- 
Fujii Masao
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center

Attachment: smart_shutdown_bugfix_v1.patch
Description: application/octet-stream (892 bytes)

In response to

Responses

pgsql-hackers by date

Next:From: Robert HaasDate: 2010-04-13 13:27:57
Subject: Re: pending patch: Re: HS/SR and smart shutdown
Previous:From: Dave PageDate: 2010-04-13 12:54:20
Subject: Re: initdb failing for chinese locale on windows machine

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group