Re: [NOVICE] Postgresql crash- any ideas?

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Michael Guerin <guerin(at)rentec(dot)com>
Cc: pgsql-novice(at)postgresql(dot)org, pgsql-hackers(at)postgresql(dot)org
Subject: Re: [NOVICE] Postgresql crash- any ideas?
Date: 2004-10-29 21:16:14
Message-ID: 20524.1099084574@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-novice

Michael Guerin <guerin(at)rentec(dot)com> writes:
> FATAL: block 26 of 1663/17228/3425958479 is still referenced (local 2)
> LOG: server process (PID 1887) exited with exit code 1

After some contemplation of the source code I was able to isolate a
possibly-related failure case:

regression=# create temp table foo (f1 int) on commit delete rows;
CREATE TABLE
regression=# begin;
BEGIN
regression=# insert into foo values(1);
INSERT 1926679 1
regression=# insert into foo values(2);
INSERT 1926680 1
regression=# declare c cursor for select * from foo;
DECLARE CURSOR
regression=# fetch 1 from c;
f1
----
1
(1 row)

regression=# commit;
ERROR: block 0 of 1663/1788591/1926677 is still referenced (local 2)
regression=#

but as you can see this isn't FATAL, so I dunno if its the same as what
you are seeing.

This particular bug occurs because of a wrong order of operations during
COMMIT: we ought to close cursors *before* executing ON COMMIT actions.

regards, tom lane

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Thomas Hallgren 2004-10-30 10:35:01 Signature change for SPI_cursor_open
Previous Message Bruce Momjian 2004-10-29 20:45:02 Re: Using ALTER TABLESPACE in pg_dump

Browse pgsql-novice by date

  From Date Subject
Next Message Marcus Andree S. Magalhaes 2004-10-29 22:10:47 behaviour of LENGTH() in postgresql v. 8
Previous Message Tom Lane 2004-10-29 20:01:03 Re: Postgresql crash- any ideas?