At Wed, 6 Apr 2016 15:29:12 +0900, Fujii Masao <masao.fujii@gmail.com> wrote in
<CAHGQGwHGQEwH2c9buiZ=G7Ko8PQYwiU7=NsDkvCjRKUPSN8j7A@mail.gmail.com>
> > @@ -640,6 +639,13 @@ SyncRepGetSyncStandbys(bool *am_sync)
> > }
> >
> > /*
> > + * The pending list contains eventually potentially-synchronized standbys
> > + * and this walsender may be one of them. So once reset am_sync.
> > + */
> > + if (am_sync != NULL)
> > + *am_sync = false;
> > +
> > + /*
>
> This code seems wrong in the case where this walsender is in the result list.
> So I adopted another logic. Attached is the updated version of the patch.
You must misread the patch. am_sync is originally set in the loop
just after that for the case.
! while (priority <= lowest_priority)
! {
..
! for (cell = list_head(pending); cell != NULL; cell = next)
! {
...
! if (this_priority == priority)
! {
! result = lappend_int(result, i);
! if (am_sync != NULL && walsnd == MyWalSnd)
! *am_sync = true;
--
Kyotaro Horiguchi
NTT Open Source Software Center