From: | Manfred Koizar <mkoi-pg(at)aon(dot)at> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | pgsql-hackers(at)postgreSQL(dot)org |
Subject: | Re: HeapTuple header changes cause core dumps in CVS tip |
Date: | 2002-07-15 23:38:48 |
Message-ID: | t1j6jusdusb9diahdai7jr427ou78j2jtq@4ax.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Mon, 15 Jul 2002 16:46:44 -0400, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
wrote:
>regression=# update foo set f1 = 'qq';
>server closed the connection unexpectedly
Same with DELETE FROM foo;
>I am not sure if this is a bug introduced by the patch, or if it's
>exposed a previously lurking bug.
I suspect the former :-(
>It seems that the HEAP_MOVED bits
>should be cleared before re-using cmax for something else, but I have
>not dug through the old logic to see how it was done before.
AFAICS from a quick look at tqual it didn't matter before. Once the
vacuum transaction had committed, on the next access to the tuple
MOVED_IN caused XMIN_COMMITTED to be set, and after that the MOVED
bits were never looked at again. MOVED_OFF is not an issue.
I'll take a closer look at tqual and the vacuum source code tomorrow.
For now the attached patch cures both symptoms (UPDATE and DELETE) and
passes all regression tests. A regression test for this case will
follow.
Servus
Manfred
Attachment | Content-Type | Size |
---|---|---|
unknown_filename | text/plain | 2.9 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2002-07-15 23:55:43 | Re: Unused system table columns |
Previous Message | Bruce Momjian | 2002-07-15 23:32:27 | Re: utils C files |