Unlimited memory consumption with long-lived connection

From: Duncan Sands <duncan(dot)sands(at)deepbluecap(dot)com>
To: pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Unlimited memory consumption with long-lived connection
Date: 2023-02-21 12:57:09
Message-ID: a53cacb0-8835-57d6-31e4-4c5ef196de1a@deepbluecap.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

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.

Attachment Content-Type Size
mem.py text/x-python 33.9 KB

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Heikki Linnakangas 2023-02-21 14:32:02 Re: Unlimited memory consumption with long-lived connection
Previous Message Dean Rasheed 2023-02-21 11:56:00 Re: BUG #17803: Rule "ALSO INSERT ... SELECT ..." fails to substitute default values