Re: Stefan's bug (was: max_standby_delay considered harmful)

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
Cc: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>, Stefan Kaltenbrunner <stefan(at)kaltenbrunner(dot)cc>, Simon Riggs <simon(at)2ndquadrant(dot)com>, Andres Freund <andres(at)anarazel(dot)de>, Florian Pflug <fgp(at)phlo(dot)org>, Dimitri Fontaine <dfontaine(at)hi-media(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, Bruce Momjian <bruce(at)momjian(dot)us>, Greg Smith <greg(at)2ndquadrant(dot)com>, Josh Berkus <josh(at)agliodbs(dot)com>
Subject: Re: Stefan's bug (was: max_standby_delay considered harmful)
Date: 2010-05-18 11:35:00
Message-ID: AANLkTinBsifacbaiRQBjYAXqoP1VC6EsW7Q4GZ55LnAj@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Mon, May 17, 2010 at 10:40 PM, Fujii Masao <masao(dot)fujii(at)gmail(dot)com> wrote:
> On Mon, May 17, 2010 at 10:20 PM, Robert Haas <robertmhaas(at)gmail(dot)com> wrote:
>> OK, I think I understand now.  But, the SIGTERM sent by the postmaster
>> doesn't kill the recovery process unconditionally.  It will invoke
>> StartupProcShutdownHandler(), which will set set shutdown_requested =
>> true.  That gets checked by RestoreArchivedFile() and
>> HandleStartupProcInterrupts(), and I think that neither of those can
>> get invoked until after the control file has been updated.  Do you see
>> a way it can happen?
>
> Yeah, the way is:
> StartupXLOG() --> ReadCheckpointRecord() --> ReadRecord() -->
> XLogPageRead() --> XLogFileReadAnyTLI() --> XLogFileRead() -->
> RestoreArchivedFile()
>
> ReadCheckpointRecord() is called before pg_control is updated.

OK. In that case, I'm wondering if we should reverse course and
rejigger the logic so that the shutdown gets processed when we
transition to PM_RECOVERY. Seems like that might be simpler.

> ISTM that walreceiver might be invoked even after shutdown is requested.
> We should prevent the postmaster from starting up walreceiver if
> Shutdown > NoShutdown?

Well, when we did the previous shutdown patch, we decided it was not
right to kill walreceiver until all backends had exited, so it seems
inconsistent to make the opposite decision here.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise Postgres Company

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Fujii Masao 2010-05-18 11:41:58 Re: Synchronous replication patch built on SR
Previous Message Andrew Dunstan 2010-05-18 11:32:11 Re: Clarifications of licences on pgfoundry