Thread: pgsql: Make recovery_target_action = pause work.

pgsql: Make recovery_target_action = pause work.

From
Fujii Masao
Date:
Make recovery_target_action = pause work.

Previously even if recovery_target_action was set to pause and
the recovery target was reached, the recovery could never be paused.
Because the setting of pause was *always* overridden with that of
shutdown unexpectedly. This override is valid and intentional
if hot_standby is not enabled because there is no way to resume
the paused recovery in this case and the setting of pause is
completely useless. But not if hot_standby is enabled.

This patch changes the code so that the setting of pause is overridden
with that of shutdown only when hot_standby is not enabled.

Bug reported by Andres Freund

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/85d0e661aae656d3ec710dab24f883c4b4ef90da

Modified Files
--------------
src/backend/access/transam/xlog.c |    4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)


Re: pgsql: Make recovery_target_action = pause work.

From
Simon Riggs
Date:
On 21 May 2015 at 00:57, Fujii Masao <fujii@postgresql.org> wrote:
Make recovery_target_action = pause work.

Previously even if recovery_target_action was set to pause and
the recovery target was reached, the recovery could never be paused.
Because the setting of pause was *always* overridden with that of
shutdown unexpectedly. This override is valid and intentional
if hot_standby is not enabled because there is no way to resume
the paused recovery in this case and the setting of pause is
completely useless. But not if hot_standby is enabled.

This patch changes the code so that the setting of pause is overridden
with that of shutdown only when hot_standby is not enabled.

Bug reported by Andres Freund

Note for archives: this is a bug, not a change in behaviour.

The original coding of standbyState == STANDBY_DISABLED
wasn't correct because standbyState > STANDBY_DISABLED only after we run InitRecoveryTransactionEnvironment() which happens later than this parameter check. 

--
Simon Riggs                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services