Обсуждение: Re: [PATCH] Fix memory leak in memoize for numeric key

Поиск
Список
Период
Сортировка

Re: [PATCH] Fix memory leak in memoize for numeric key

От
David Rowley
Дата:
On Tue, 3 Oct 2023 at 19:38, Orlov Aleksej <al.orlov@cft.ru> wrote:
> I found a query which consumes a lot of memory and triggers OOM killer.
> Memory leak occurs in memoize node for numeric key.

Thanks for the analysis and the patch.

> I've attached memoize_memory_leak_numeric_key.patch to address this.

Yeah, this is a bug for sure.

Looking at ExecHashGetHashValue() for example purposes, I see it's
quite careful to call ResetExprContext(econtext) at the top of the
function to reset the tuple context.

I think the patch might need to go a bit further and also adjust
MemoizeHash_equal().  In non-binary mode, we just call
ExecQualAndReset() which evaluates the join condition and resets the
context.  The binary mode code does not do this, so I think we should
expand on what you've done and adjust that code too.

I've done that in the attached patch.

David

Вложения

RE: [PATCH] Fix memory leak in memoize for numeric key

От
Orlov Aleksej
Дата:
I've finished testing the patch. 
I confirm that the patch solves the problem and works just as fast.

Thanks,
Alexey Orlov.

Re: [PATCH] Fix memory leak in memoize for numeric key

От
David Rowley
Дата:
On Wed, 4 Oct 2023 at 21:08, Orlov Aleksej <al.orlov@cft.ru> wrote:
> I've finished testing the patch.
> I confirm that the patch solves the problem and works just as fast.

Thanks for checking that.

I've pushed the patch now.

David