Re: When is the MessageContext released?

Поиск
Список
Период
Сортировка
От Andy Fan
Тема Re: When is the MessageContext released?
Дата
Msg-id CAKU4AWqsCRp-uZK4AJ8u+QfCjNk9LJ9KUExAhBW7t1XPga_1Lw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: When is the MessageContext released?  (Andres Freund <andres@anarazel.de>)
Список pgsql-hackers
Thanks you Andres for your time!  this context is free with AllocSetReset rather than AllocSetDelete, that makes my breakpoint doesn't catch it.  

On Wed, Feb 27, 2019 at 2:15 PM Andres Freund <andres@anarazel.de> wrote:
On 2019-02-27 14:08:47 +0800, Andy Fan wrote:
> Hi :
>   I run a query like "select * from t" and set the break like this:
>
> break exec_simple_query
> break MemoryContextDelete
>   commands
>    p context->name
>    c
>   end
>
> I can see most of the MemoryContext is relased, but never MessageContext,
> when will it be released?

It's released above exec_simple_query, as it actually contains the data
that lead us to call exec_simple_query().  See the main for loop in
PostgresMain():

                /*
                 * Release storage left over from prior query cycle, and create a new
                 * query input buffer in the cleared MessageContext.
                 */
                MemoryContextSwitchTo(MessageContext);
                MemoryContextResetAndDeleteChildren(MessageContext);

Greetings,

Andres Freund

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

Предыдущее
От: Fabien COELHO
Дата:
Сообщение: Re: get_controlfile() can leak fds in the backend
Следующее
От: Andy Fan
Дата:
Сообщение: some hints to understand the plsql cursor.