Re: HeapTuple header changes cause core dumps in CVS tip

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

In response to

Browse pgsql-hackers by date

  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