Re: Unlimited memory consumption with long-lived connection

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема Re: Unlimited memory consumption with long-lived connection
Дата
Msg-id 7484b4bd-a808-ed9e-892c-933f7f24120f@iki.fi
обсуждение исходный текст
Ответ на Unlimited memory consumption with long-lived connection  (Duncan Sands <duncan.sands@deepbluecap.com>)
Ответы Re: Unlimited memory consumption with long-lived connection  (Justin Pryzby <pryzby@telsasoft.com>)
Список pgsql-bugs
On 21/02/2023 14:57, Duncan Sands wrote:
> If I execute the attached python script against a postgresql 15.2 (Ubuntu
> 15.2-1.pgdg22.10+1) server, with the default configuration (eg shared_buffers =
> 128M), then the server memory usage goes up and up, apparently endlessly.  After
> about 10 minutes (on my laptop) pg_top shows RES memory usage for the back-end
> handling the connection as greater than 1 gigabyte, which seems far too high
> given the server configuration.  The script just performs the same SELECT
> endlessly in a loop.  The memory is released when the script is killed.
> 
> Platform: Ubuntu 22.10; Linux version 5.19.0-31-generic; x86-64.
> 
> PS: The testcase was reduced from a script that kept a connection open for a
> long time in order to LISTEN, and would execute a query using the same
> connection every time there was a notification on the channel.  It consumed ever
> more memory to the point of crashing the postgresql server.  Changing the script
> to perform the query using a new short-lived connection was an effective workaround.

I can reproduce this on my laptop. When I turn 'jit=off', or disable JIT 
inlining with 'jit_inline_above_cost = -1', the leak stops, or at least 
gets small enough that I don't readily see it with 'top' anymore. So it 
seems to be related to LLVM inlining. I'm using LLVM and clang 14.

To track down the leak, I started postgres server with Valgrind, and let 
the script run for 40 iterations with Valgrind. It did report some leaks 
from LLVM inline functions (attached), but I'm not very familiar with 
this code so I'm not sure which ones might be genuine leaks or how to 
fix them.

- Heikki

Вложения

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

Предыдущее
От: Duncan Sands
Дата:
Сообщение: Unlimited memory consumption with long-lived connection
Следующее
От: Tom Lane
Дата:
Сообщение: Re: BUG #17803: Rule "ALSO INSERT ... SELECT ..." fails to substitute default values