Hi, On Monday, July 30, 2012 03:15:37 PM anderva...@gmail.com wrote: > we recently had a memory exhaustion in the PostgreSQL server of the > company, after a scan found a likely memory leak when using a plpgsql > function. > The problem occurred on an IBM x3400 server with 12G, CentOS 5.5 and > PostgreSQL 9.1.4. The leak occurs when a variable declared type of a table > column and when the > column or the table ceases to exist. > Follow the steps for the simulation: > > create table tbl_test > (cod integer); > > CREATE OR REPLACE FUNCTION citgis.fct_test() > RETURNS void AS > $body$ > DECLARE > v_cod tbl_test.cod%type; > BEGIN > return; > END; > $body$ > LANGUAGE 'plpgsql'; > > drop table tbl_test; > > > test=# select pg_backend_pid(); > pg_backend_pid > ---------------- > 6465 > > Initial memory > --------------------------------------------------------------------------- > --------------------------------------------- PID USER PR NI VIRT > SWAP RES CODE DATA SHR S P %CPU %MEM TIME+ COMMAND > 6465 postgres 15 0 1194m 1.2g 14m 4684 12m 3748 S 1 0.0 0.1 > 0:00.08 postgres: postgres test [local] idle > 6465 postgres 15 0 1203m 1.2g 23m 4684 21m 3748 S 1 0.0 0.2 > 0:00.17 postgres: postgres test [local] idle > 6465 postgres 15 0 1212m 1.2g 32m 4684 30m 3748 S 1 3.0 0.3 > 0:00.26 postgres: postgres test [local] idle > 6465 postgres 16 0 1221m 1.2g 41m 4684 39m 3756 S 1 0.0 0.3 > 0:00.36 postgres: postgres test [local] idle > --------------------------------------------------------------------------- > --------------------------------------------- I don't think youve found a memory leak here. I tested several thousand iterations of this and the memory usage tops out a 93MB. What you see is probably some memory fragmentation and that some copy-on-write page mappings are only gradually brought into place.
Greetings, Andres -- Andres Freund http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs