Re: Missing pfree in logical_heap_rewrite_flush_mappings()

Поиск
Список
Период
Сортировка
От Andres Freund
Тема Re: Missing pfree in logical_heap_rewrite_flush_mappings()
Дата
Msg-id 20140326172938.GD9066@alap3.anarazel.de
обсуждение исходный текст
Ответ на Re: Missing pfree in logical_heap_rewrite_flush_mappings()  (Stephen Frost <sfrost@snowman.net>)
Ответы Re: Missing pfree in logical_heap_rewrite_flush_mappings()  (Stephen Frost <sfrost@snowman.net>)
Список pgsql-hackers
On 2014-03-26 12:49:41 -0400, Stephen Frost wrote:
> * Ants Aasma (ants@cybertec.at) wrote:
> > It seems to me that when flushing logical mappings to disk, each
> > mapping file leaks the buffer used to pass the mappings to XLogInsert.
> > Also, it seems consistent to allocate that buffer in the RewriteState
> > memory context. Patch attached.

Good catch. There's actually no need for explicitly using the context,
we're in the appropriate one. The only other MemoryContextAlloc() caller
in there should be converted to a palloc as well.

> Hmm, yeah, it does look that way.  Why bother pfree'ing it here though
> instead of letting it be cleaned up with state->rs_cxt in
> end_heap_rewrite()?

For a somewhat large relation (say a pg_attribute in a db with lots of
tables), this can actually get to be a somewhat significant amount of
memory. It *will* currently already get cleaned up with the context, but
we can easily do better.

Greetings,

Andres Freund

-- Andres Freund                       http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training &
Services



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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: small regression adjustment
Следующее
От: Stephen Frost
Дата:
Сообщение: Re: Missing pfree in logical_heap_rewrite_flush_mappings()