Re: Curing plpgsql's memory leaks for statement-lifespan values

Поиск
Список
Период
Сортировка
Искать
От
Craig Ringer
Тема
Re: Curing plpgsql's memory leaks for statement-lifespan values
Дата
Msg-id
CAMsr+YGwc0xte1wp_aqBFiWbXvf=tEG4U-JC8yZWSzsjQv5-Ug@mail.gmail.com
Ответ на
Список
Дерево обсуждения
Curing plpgsql's memory leaks for statement-lifespan values Tom Lane <tgl@sss.pgh.pa.us>
Re: Curing plpgsql's memory leaks for statement-lifespan values Amit Kapila <amit.kapila16@gmail.com>
Re: Curing plpgsql's memory leaks for statement-lifespan values Tom Lane <tgl@sss.pgh.pa.us>
Re: Curing plpgsql's memory leaks for statement-lifespan values Amit Kapila <amit.kapila16@gmail.com>
Re: Curing plpgsql's memory leaks for statement-lifespan values Tom Lane <tgl@sss.pgh.pa.us>
Re: Curing plpgsql's memory leaks for statement-lifespan values Alvaro Herrera <alvherre@2ndquadrant.com>
Re: Curing plpgsql's memory leaks for statement-lifespan values Alvaro Herrera <alvherre@2ndquadrant.com>
Re: Curing plpgsql's memory leaks for statement-lifespan values Tom Lane <tgl@sss.pgh.pa.us>
Re: Curing plpgsql's memory leaks for statement-lifespan values Robert Haas <robertmhaas@gmail.com>
Re: Curing plpgsql's memory leaks for statement-lifespan values Tom Lane <tgl@sss.pgh.pa.us>
Re: Curing plpgsql's memory leaks for statement-lifespan values Pavel Stehule <pavel.stehule@gmail.com>
Re: Curing plpgsql's memory leaks for statement-lifespan values Pavel Stehule <pavel.stehule@gmail.com>
Re: Curing plpgsql's memory leaks for statement-lifespan values Tom Lane <tgl@sss.pgh.pa.us>
Re: Curing plpgsql's memory leaks for statement-lifespan values Jim Nasby <Jim.Nasby@BlueTreble.com>
Re: Curing plpgsql's memory leaks for statement-lifespan values Tom Lane <tgl@sss.pgh.pa.us>
Re: Curing plpgsql's memory leaks for statement-lifespan values Jim Nasby <Jim.Nasby@BlueTreble.com>
Re: Curing plpgsql's memory leaks for statement-lifespan values Dilip Kumar <dilipbalaut@gmail.com>
Re: Curing plpgsql's memory leaks for statement-lifespan values Craig Ringer <craig@2ndquadrant.com>
Re: Curing plpgsql's memory leaks for statement-lifespan values Craig Ringer <craig@2ndquadrant.com>
Re: Curing plpgsql's memory leaks for statement-lifespan values Tom Lane <tgl@sss.pgh.pa.us>

On 22 July 2016 at 07:02, Tom Lane <tgl@sss.pgh.pa.us> wrote:
In
https://www.postgresql.org/message-id/tencent_5C738ECA65BAD6861AA43E8F@qq.com
it was pointed out that you could get an intra-function-call memory leak
from something like

        LOOP
          BEGIN
            EXECUTE 'bogus command';
          EXCEPTION WHEN OTHERS THEN
          END;
        END LOOP;

...
 

Another answer is to invent a third per-function memory context intended
to hold statement-lifespan variables.


I've wanted this in the past and been surprised we don't have it, so +1 from me. 

I don't think a few MemoryContextAlloc's are too ugly.

I suggest that in cassert builds, or maybe just CACHE_CLOBBER_ALWAYS, the context is reset after each call even when not cleaning up after an error. That'll help catch mistakes and leaks.

--
 Craig Ringer                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services
В списке pgsql-hackers по дате отправления
От: Craig Ringer
Дата:
От: Craig Ringer
Дата:
FAQ