Re: BUG #18055: logical decoding core on AllocateSnapshotBuilder()

Поиск
Список
Период
Сортировка
От Amit Kapila
Тема Re: BUG #18055: logical decoding core on AllocateSnapshotBuilder()
Дата
Msg-id CAA4eK1KPggSXd8YSrsRJNmByH_CaGwnDtCJM36wQLiv5XZJxtg@mail.gmail.com
обсуждение исходный текст
Ответ на Re: BUG #18055: logical decoding core on AllocateSnapshotBuilder()  (Andres Freund <andres@anarazel.de>)
Ответы Re: BUG #18055: logical decoding core on AllocateSnapshotBuilder()  (Andres Freund <andres@anarazel.de>)
Список pgsql-bugs
On Mon, Aug 21, 2023 at 2:35 AM Andres Freund <andres@anarazel.de> wrote:
>
> On 2023-08-18 04:21:53 +0000, Zhijie Hou (Fujitsu) wrote:
> > From ee1dfccc0306812c356c84bbd7e2558f27d7d348 Mon Sep 17 00:00:00 2001
> > From: Hou Zhijie <houzj.fnst@cn.fujitsu.com>
> > Date: Thu, 17 Aug 2023 19:29:34 +0800
> > Subject: [PATCH v4] cleanup decoding context in error cases
> >
> > Some of the management functions for logical decoding didn't clean up the
> > decoding context when an error occurs during decoding. This can
> > result in accessing unfreed resources and assert failure the next time we call
> > these functions. Fix it by cleaning up the decoding context and slots in error
> > cases.
>
> I don't think this is the right fix - at all. We shouldn't run arbitrary code
> after a failure, which we do by calling the shutdown callback.
>

But OTOH, it can prevent freeing some global memory like in the case
of pgoutput_shutdown which frees some memory allocated in
CacheMemoryContext. Also, as pointed out by Hou-San[1], it can lead to
unwanted behavior as next time we can access some invalid entries.

The other alternatives to fix are (a) Have some Reset* kind of
function (similar to ResetReindexState) to reset the required
variables and call at AbortTransaction time. The minor risk could be
that if any extension uses the same function name as ours but not sure
if it is worth worrying about. (b) Initialize the required variables
in AllocateSnapshotBuilder().

[1] -
https://www.postgresql.org/message-id/OS0PR01MB57167C62D7DA4A8EBBC92B0A941BA%40OS0PR01MB5716.jpnprd01.prod.outlook.com

--
With Regards,
Amit Kapila.



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

Предыдущее
От: Masahiko Sawada
Дата:
Сообщение: Re: BUG #18055: logical decoding core on AllocateSnapshotBuilder()
Следующее
От: Sanjay Patil
Дата:
Сообщение: PGRES_EMPTY_QUERY from Postgre 14.3