Re: replication cleanup code incorrect way to use of HTAB HASH_REMOVE ?

Поиск
Список
Период
Сортировка
От Peter Smith
Тема Re: replication cleanup code incorrect way to use of HTAB HASH_REMOVE ?
Дата
Msg-id CAHut+PucpZNWYrhSbJij0w4CazrEYDPm_RFUA4NoFrkUzP8wyA@mail.gmail.com
обсуждение исходный текст
Ответ на Re: replication cleanup code incorrect way to use of HTAB HASH_REMOVE ?  (Thomas Munro <thomas.munro@gmail.com>)
Список pgsql-hackers
On Mon, Mar 22, 2021 at 9:21 AM Thomas Munro <thomas.munro@gmail.com> wrote:
>
> On Mon, Mar 22, 2021 at 10:50 AM Peter Smith <smithpb2250@gmail.com> wrote:
> > The real problem isn't the Assert. It's all those other usages of ent
> > disobeying the API rule: "(NB: in the case of the REMOVE action, the
> > result is a dangling pointer that shouldn't be dereferenced!)"
>
> I suppose the HASH_REMOVE case could clobber the object with 0x7f if
> CLOBBER_FREED_MEMORY is defined (typically assertion builds), or
> alternatively return some other non-NULL but poisoned pointer, so that
> problems of this ilk  blow up in early testing.

+1, but not sure if the poisoned ptr alternative can work because some
code (e.g see RemoveTargetIfNoLongerUsed function) is asserting the
return ptr actual value, not just its NULL-ness.

------
Kind Regards,
Peter Smith.
Fujitsu Australia.



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

Предыдущее
От: Andres Freund
Дата:
Сообщение: Re: shared memory stats: high level design decisions: consistency, dropping
Следующее
От: Andres Freund
Дата:
Сообщение: Re: replication cleanup code incorrect way to use of HTAB HASH_REMOVE ?