Re: Copy function for logical replication slots

Поиск
Список
Период
Сортировка
От Masahiko Sawada
Тема Re: Copy function for logical replication slots
Дата
Msg-id CAD21AoAsPddVb3NeB3xLcj7XpYgQyX-eoafETxAjp481NsZ-yQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Copy function for logical replication slots  (Michael Paquier <michael@paquier.xyz>)
Ответы Re: Copy function for logical replication slots  (Masahiko Sawada <sawada.mshk@gmail.com>)
Список pgsql-hackers
On Wed, Feb 20, 2019 at 12:26 PM Michael Paquier <michael@paquier.xyz> wrote:
>
> On Tue, Feb 19, 2019 at 05:09:33PM +0900, Masahiko Sawada wrote:
> > On Tue, Feb 19, 2019 at 1:28 AM Andres Freund <andres@anarazel.de> wrote:
> >> Well, I'd not thought we'd do it without acquiring the other slot. But
> >> that still seems to be easy enough to address, we just need to recheck
> >> whether the slot still exists (with the right name) the second time we
> >> acquire the spinlock?
> >
> > Yeah, I think that would work. The attached patch takes this
> > direction. Please review it.
>
> +     if (XLogRecPtrIsInvalid(copy_restart_lsn) ||
> +              copy_restart_lsn < src_restart_lsn ||
> +              src_islogical != copy_islogical ||
> +              strcmp(copy_name, NameStr(*src_name)) != 0)
> +              ereport(ERROR,
> +                              (errmsg("could not copy logical replication slot \"%s\"",
> +                               NameStr(*src_name)),
> +                               errdetail("The source replication slot has been dropped during copy")));
> +
> +      /* Install copied values again */
> +      SpinLockAcquire(&MyReplicationSlot->mutex);
>
> Worth worrying about this window not reduced to zero?  If the slot is
> dropped between both then the same issue would arise.

You meant that the destination slot (i.e. MyReplicationSlot) could be
dropped before acquiring its lock? Since we're holding the new slot it
cannot be dropped.

BTW, XLogRecPtrIsInvalid(copy_restart_lsn) ||  copy_restart_lsn <
src_restart_lsn is redundant, the former should be removed.

Regards,

--
Masahiko Sawada
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Robert Haas
Дата:
Сообщение: Re: libpq debug log
Следующее
От: Kyotaro HORIGUCHI
Дата:
Сообщение: Re: Protect syscache from bloating with negative cache entries