Re: BUG #6785: Memory Leak in plpgsql - Mailing list pgsql-bugs

From Andres Freund
Subject Re: BUG #6785: Memory Leak in plpgsql
Date
Msg-id 201207301706.13963.andres@2ndquadrant.com
Whole thread Raw
In response to BUG #6785: Memory Leak in plpgsql  (andervalbh@gmail.com)
Responses Re: BUG #6785: Memory Leak in plpgsql  (Anderson Valadares <andervalbh@gmail.com>)
List pgsql-bugs
Hi,

On Monday, July 30, 2012 03:15:37 PM andervalbh@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

pgsql-bugs by date:

Previous
From: "Emcisc (JinWei) Zhao"
Date:
Subject: Error on pg_settings.bytea_output for pg9.1
Next
From: Anderson Valadares
Date:
Subject: Re: BUG #6785: Memory Leak in plpgsql