A bug report on this was filled out against the 6.3 release as well.
Don't know the status of it, however :(

Mirko Kaffka wrote:
> 
> Hi,
> 
> We have problems with backend processes that close the channel because of
> palloc() failures. When an INSERT statement fails, the backend reports an
> error (e.g. `Cannot insert a duplicate key into a unique index') and
> allocates a few bytes more memory. The next SQL statement that fails
> causes the backend to allocate more memory again, etc. until we have no
> more virtual memory left. Is this a bug?
> We are using postgres 6.4.2 on FreeBSD 2.2.8.
> 
> It also works with psql:
> 
> toy=> create table mytable (i integer unique);
> NOTICE:  CREATE TABLE/UNIQUE will create implicit index mytable_i_key for
> table mytable
> CREATE
> toy=> \q
> 
> ~ $ # now do a lot of inserts that cause error messages:
> ~ $ while true; do echo "INSERT INTO mytable VALUES (1);"; done | psql toy
> INSERT INTO mytable VALUES (1);
> ERROR:  Cannot insert a duplicate key into a unique index
> ...quite a lot of these messages
> INSERT INTO mytable VALUES (1);
> ERROR:  Cannot insert a duplicate key into a unique index
> INSERT INTO mytable VALUES (1);
> 
> pqReadData() -- backend closed the channel unexpectedly.
>         This probably means the backend terminated abnormally before or
> while processing the request.
> We have lost the connection to the backend, so further processing is
> impossible.  Terminating.
> 
> Hmm, why does the backend allocate more and more memory with each failed
> INSERT ?
> Any clues?
> 
> Thanks,
> Mirko

-- 
------------------------------------------------------------
Thomas Reinke                            Tel: (416) 460-7021
Director of Technology                   Fax: (416) 598-2319
E-Soft Inc.                         http://www.e-softinc.com

Reply via email to