Re: Missing LWLock protection in pgstat_reset_replslot()

Поиск
Список
Период
Сортировка
От shveta malik
Тема Re: Missing LWLock protection in pgstat_reset_replslot()
Дата
Msg-id CAJpy0uCHdwtKD4074mdFrJDtjy_d8kVG8z4_1p6qBTzg5=mOpg@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Missing LWLock protection in pgstat_reset_replslot()  (Bertrand Drouvot <bertranddrouvot.pg@gmail.com>)
Ответы Re: Missing LWLock protection in pgstat_reset_replslot()
Список pgsql-hackers
On Tue, Mar 5, 2024 at 6:52 PM Bertrand Drouvot
<bertranddrouvot.pg@gmail.com> wrote:
>
> > /*
> > * Nothing to do for physical slots as we collect stats only for logical
> > * slots.
> > */
> > if (SlotIsPhysical(slot))
> > return;
>
> D'oh! Thanks! Fixed in v2 shared up-thread.

Thanks.  Can we try to get rid of multiple LwLockRelease in
pgstat_reset_replslot(). Is this any better?

        /*
-        * Nothing to do for physical slots as we collect stats only for logical
-        * slots.
+        * Reset stats if it is a logical slot. Nothing to do for physical slots
+        * as we collect stats only for logical slots.
         */
-       if (SlotIsPhysical(slot))
-       {
-               LWLockRelease(ReplicationSlotControlLock);
-               return;
-       }
-
-       /* reset this one entry */
-       pgstat_reset(PGSTAT_KIND_REPLSLOT, InvalidOid,
-                                ReplicationSlotIndex(slot));
+       if (SlotIsLogical(slot))
+               pgstat_reset(PGSTAT_KIND_REPLSLOT, InvalidOid,
+                                        ReplicationSlotIndex(slot));

        LWLockRelease(ReplicationSlotControlLock);


Something similar in pgstat_fetch_replslot() perhaps?

thanks
Shveta



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

Предыдущее
От: Masahiko Sawada
Дата:
Сообщение: Re: Synchronizing slots from primary to standby
Следующее
От: Thomas Munro
Дата:
Сообщение: Potential stack overflow in incremental base backup