Re: Memory leak with CALL to Procedure with COMMIT.

Поиск
Список
Период
Сортировка
От Alvaro Herrera
Тема Re: Memory leak with CALL to Procedure with COMMIT.
Дата
Msg-id 20180816164626.myww6omfjm3jvwyq@alvherre.pgsql
обсуждение исходный текст
Ответ на Re: Memory leak with CALL to Procedure with COMMIT.  (Peter Eisentraut <peter.eisentraut@2ndquadrant.com>)
Ответы Re: Memory leak with CALL to Procedure with COMMIT.
Список pgsql-hackers
On 2018-Aug-16, Peter Eisentraut wrote:

> There are, technically, three ways to fix this: silence the warning,
> unregister the snapshot explicitly, or don't register the snapshot to
> begin with.
> 
> Silencing the warning, other than by just deleting it, might require
> passing in some more context information into ResourceOwnerRelease().
> (The existing isTopLevel isn't quite the right thing.)
> 
> Unregistering the snapshot explicitly looks tricky because in
> SPI_commit() or thereabouts we have no context information about which
> snapshot might have been registered where.

Hmm, this got me thinking whether the current resource owner setup for a
procedure is appropriate.  Maybe the problem is that resowners are still
thought of in terms of transactions plus portals, so that if
transactions are done then everything is over; maybe we need to teach
them that procedures can outlive transactions, so you'd have a resowner
that's global to the procedure and then each transaction resowner is a
child of that one?

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services


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

Предыдущее
От: Alvaro Herrera
Дата:
Сообщение: Re: FailedAssertion on partprune
Следующее
От: Peter Eisentraut
Дата:
Сообщение: Re: Stored procedures and out parameters