Re: pg_get_wal_replay_pause_state() should not return 'paused' while a promotion is ongoing.

Fujii Masao <masao.fujii@oss.nttdata.com>

From: Fujii Masao <masao.fujii@oss.nttdata.com>
To: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Cc: dilipbalaut@gmail.com, michael@paquier.xyz, pgsql-hackers@postgresql.org
Date: 2021-06-02T03:22:04Z
Lists: pgsql-hackers

On 2021/05/31 17:18, Kyotaro Horiguchi wrote:
> Sorry for missing this.
> 
> At Mon, 31 May 2021 12:52:54 +0900, Fujii Masao <masao.fujii@oss.nttdata.com> wrote in
>>
>> On 2021/05/19 19:24, Fujii Masao wrote:
>>> On 2021/05/19 16:43, Kyotaro Horiguchi wrote:
>>>> +1 for adding some tests for pg_wal_replay_pause() but the test seems
>>>> like checking only that pg_get_wal_replay_pause_state() returns the
>>>> expected state value.  Don't we need to check that the recovery is
>>>> actually paused and that the promotion happens at expected LSN?
>>> Sounds good. Attached is the updated version of the patch.
>>> I added such checks into the test.
> 
> Thanks! Looks fine. The paused-state test may get false-success but it
> would be sufficient that it detects the problem in most cases.
> 
>>> BTW, while reading some recovery regression tests, I found that
>>> 013_crash_restart.pl has "use Time::HiRes qw(usleep)" but it seems
>>> not necessary. We can safely remove that? Patch attached.
> 
> Looks just fine for the removal of HiRes usage.  All other use of
> HiRes are accompanied by a usleep usage.
> 
>> Barring any objections, I'm thinking to commit these two patches.
> 
> +1.

Thanks for the review! I pushed those two patches.

Regards,

-- 
Fujii Masao
Advanced Computing Technology Center
Research and Development Headquarters
NTT DATA CORPORATION



Commits

  1. Remove unnecessary use of Time::HiRes from 013_crash_restart.pl.

  2. Add regression test for recovery pause.

  3. Make standby promotion reset the recovery pause state to 'not paused'.

  4. Prefer standby promotion over recovery pause.