Re: recovery_target_action = pause & hot_standby = off

From: Magnus Hagander <magnus(at)hagander(dot)net>
To: Andres Freund <andres(at)2ndquadrant(dot)com>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>, Petr Jelinek <petr(at)2ndquadrant(dot)com>, Simon Riggs <simon(at)2ndquadrant(dot)com>
Subject: Re: recovery_target_action = pause & hot_standby = off
Date: 2015-03-15 13:51:46
Message-ID: CABUevEzZaXqMzTryrEo1Z8dmQgbmL0bh6tVHvSQqyTqfmn9Wkw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Sun, Mar 15, 2015 at 2:27 PM, Andres Freund <andres(at)2ndquadrant(dot)com>
wrote:

> On 2015-03-12 15:52:02 +0100, Andres Freund wrote:
> > /*
> > * Override any inconsistent requests. Not that this is a change
> > * of behaviour in 9.5; prior to this we simply ignored a request
> > * to pause if hot_standby = off, which was surprising behaviour.
> > */
> > if (recoveryTargetAction == RECOVERY_TARGET_ACTION_PAUSE &&
> > recoveryTargetActionSet &&
> > standbyState == STANDBY_DISABLED)
> > recoveryTargetAction = RECOVERY_TARGET_ACTION_SHUTDOWN;
>
> While it's easy enough to fix I rather dislike the whole intent here
> though. *Silently* switching the mode of operation in a rather
> significant way seems like a bad idea to me. At the very least we need
> to emit a LOG message about this; but I think it'd be much better to
> error out instead.
>
> <9.5's behaviour was already quite surprising. But changing things to a
> different surprising behaviour seems like a bad idea.
>

+1. Especially for "sensitive" operations like this, having
predictable-behavior-or-error is usually the best choice.

--
Magnus Hagander
Me: http://www.hagander.net/
Work: http://www.redpill-linpro.com/

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andres Freund 2015-03-15 13:57:18 Re: Add shutdown_at_recovery_target option to recovery.conf
Previous Message Andres Freund 2015-03-15 13:27:07 Re: recovery_target_action = pause & hot_standby = off