Re: memory leak in auto_explain

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: memory leak in auto_explain
Дата
Msg-id 3754771.1612289622@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: memory leak in auto_explain  (japin <japinli@hotmail.com>)
Ответы Re: memory leak in auto_explain  (japin <japinli@hotmail.com>)
Список pgsql-hackers
japin <japinli@hotmail.com> writes:
> Here's my analysis:
> 1) In the explain_ExecutorEnd(), it will create a ExplainState on SQL function
> memory context, which is a long-lived, cause the memory grow up.

Yeah, agreed.  I think people looking at this have assumed that the
ExecutorEnd hook would automatically be running in the executor's
per-query context, but that's not so; we haven't yet entered
standard_ExecutorEnd where the context switch is.  The caller's
context is likely to be much longer-lived than the executor's.

I think we should put the switch one level further out than you have
it here, just to be sure that InstrEndLoop is covered too (that doesn't
allocate memory, but auto_explain shouldn't assume that).  Otherwise
seems like a good fix.

            regards, tom lane



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

Предыдущее
От: Pavel Stehule
Дата:
Сообщение: bugfix - plpgsql - statement counter is incremented 2x for FOR stmt
Следующее
От: Tom Lane
Дата:
Сообщение: Re: bugfix - plpgsql - statement counter is incremented 2x for FOR stmt