Re: memory leak in postgresql

From: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: memory leak in postgresql
Date: 2011-10-11 20:03:56
Message-ID: CAFj8pRAG8F8zzD3hUsPv_5Jucy1Zfwo-b+hkjCO6vC+B5=fa3g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

2011/10/11 Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>:
> Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> writes:
>> I found a following issue (tested on PostgreSQL 9.2)
>
>> CREATE OR REPLACE FUNCTION public.setfield(a anyelement, text, text)
>> RETURNS anyelement
>> LANGUAGE plpgsql
>> AS $function$
>> begin
>>   create temp table aux as select $1.*;
>>   execute 'update aux set ' || quote_ident($2) || ' = ' || quote_literal($3);
>>   select into $1 * from aux;
>>   drop table aux;
>>   return $1;
>> end;
>> $function$
>
>> create type mypoint as (a int, b int);
>
>> create table omega(p mypoint);
>
>> insert into omega select mypoint '(10,20)' from generate_series(1,100000);
>
>> update omega set p = setfield(p, 'a', '20');
>
>> WARNING:  out of shared memory
>> CONTEXT:  SQL statement "create temp table aux as select $1.*"
>> PL/pgSQL function "setfield" line 3 at SQL statement
>> ERROR:  out of shared memory
>> HINT:  You might need to increase max_locks_per_transaction.
>> CONTEXT:  SQL statement "create temp table aux as select $1.*"
>> PL/pgSQL function "setfield" line 3 at SQL statement
>
> This is not a memory leak, this is a "your transaction is holding too
> many locks" problem (namely, one lock for each transient table).  Please
> follow the advice given in the error message.

ok

On other hand - is necessary to hold a locks for dropped temporary tables?

Regards

Pavel

>
>                        regards, tom lane
>

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Merlin Moncure 2011-10-11 21:57:01 Re: BUG #6244: Ordering Problem
Previous Message Tom Lane 2011-10-11 19:49:24 Re: memory leak in postgresql