Re: pg_get_wal_replay_pause_state() should not return 'paused' while a promotion is ongoing. - Mailing list pgsql-hackers

From Kyotaro Horiguchi
Subject Re: pg_get_wal_replay_pause_state() should not return 'paused' while a promotion is ongoing.
Date
Msg-id 20210518.095805.1634592437754592061.horikyota.ntt@gmail.com
Whole thread Raw
In response to pg_get_wal_replay_pause_state() should not return 'paused' while a promotion is ongoing.  (Fujii Masao <masao.fujii@oss.nttdata.com>)
Responses Re: pg_get_wal_replay_pause_state() should not return 'paused' while a promotion is ongoing.
List pgsql-hackers
At Mon, 17 May 2021 23:29:18 +0900, Fujii Masao <masao.fujii@oss.nttdata.com> wrote in 
> If a promotion is triggered while recovery is paused, the paused state
> ends
> and promotion continues. But currently pg_get_wal_replay_pause_state()
> returns 'paused' in that case. Isn't this a bug?
> 
> Attached patch fixes this issue by resetting the recovery pause state
> to
> 'not paused' when standby promotion is triggered.
> 
> Thought?

Nice catch!

Once the state enteres "paused" state no more WAL record is expected
to be replayed until exiting the state. I'm not sure but maybe we are
also expecting that the server promotes whthout a record replayed when
triggered while pausing.  However, actually there's a chance for a
record to replayed before promotion.  Of course it is existing
behavior but I'd like to make sure whether we deliberately allow that.

regards.

-- 
Kyotaro Horiguchi
NTT Open Source Software Center



pgsql-hackers by date:

Previous
From: Masahiro Ikeda
Date:
Subject: Re: wal stats questions
Next
From: Chapman Flack
Date:
Subject: Re: allow specifying direct role membership in pg_hba.conf