On Mon, 08 Feb 2021 17:32:46 +0900 (JST)
Kyotaro Horiguchi <horikyota....@gmail.com> wrote:

> At Mon, 8 Feb 2021 14:12:35 +0900, Yugo NAGATA <nag...@sraoss.co.jp> wrote in 
> > > > > I think the right fix should be that the state should never go from
> > > > > ‘paused’ to ‘pause requested’  so I think pg_wal_replay_pause should 
> > > > > take
> > > > > care of that.
> > > >
> > > > It makes sense to take care of this in pg_wal_replay_pause, but I wonder
> > > > it can not handle the case that a user resume and pause again while a 
> > > > sleep.
> > > 
> > > Right, we will have to check and set in the loop.  But we should not
> > > allow the state to go from paused to pause requested irrespective of
> > > this.
> > 
> > I agree with you.
> 
> Is there any actual harm if PAUSED returns to REQUESETED, assuming we
> immediately change the state to PAUSE always we see REQUESTED in the
> waiting loop, despite that we allow change the state from PAUSE to
> REQUESTED via NOT_PAUSED between two successive loop condition checks?

If a user call pg_wal_replay_pause while recovery is paused, users can
observe 'pause requested' during a sleep alghough the time window is short.  
It seems a bit odd that pg_wal_replay_pause changes the state like this
because This state meeans that recovery may not be 'paused'. 

-- 
Yugo NAGATA <nag...@sraoss.co.jp>


Reply via email to