On 4/19/18 02:10, Michael Paquier wrote: > On Thu, Apr 19, 2018 at 11:38:09AM +0800, jian.l...@i-soft.com.cn wrote: >> in commit 8561e48, _SPI_stack alloc from TopMemoryContext. But >> AtEOXact_SPI just set _SPI_stack = NULL. Is this a memory leak? > > You are right. I can easily see the leak if I use for example a > background worker which connects to a database, and launches many > transactions in a row. The laziest reproducer I have is to patch one of > my bgworkers to launch millions of transactions in a tight loop and the > leak is plain (this counts relations automatically, does not matter): > https://github.com/michaelpq/pg_plugins/tree/master/count_relations
This is not a memory leak in the sense that the memory is not reusable. It allocates memory for a stack, and that stack will be reused later. The stack could be bigger than you'll need, but that's not necessarily a problem. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services