Re: [HACKERS] alter_table.sql - Mailing list pgsql-hackers

From Tom Lane
Subject Re: [HACKERS] alter_table.sql
Date
Msg-id 26433.952543776@sss.pgh.pa.us
Whole thread Raw
In response to Re: [HACKERS] alter_table.sql  (Patrick Welche <prlw1@newn.cam.ac.uk>)
Responses Re: [HACKERS] alter_table.sql  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
Patrick Welche <prlw1@newn.cam.ac.uk> writes:
> Story so far: I have a table called "found". vacuum() in
> src/backend/commands/vacuum.c gets called with vacrel="found". During
> vc_init() at line 177, vacrel is cleared (="").

What the ???

Somebody broke this code badly since I last looked at it.  The vacuum
initialization sequence has been rearranged so that it does not work:
there is a CommitTransactionCommand call that occurs before the vacuum
parameters have been copied into safe-across-transactions storage.
We are reading already-freed memory at line 186.

Will fix ASAP.

BTW, this also demonstrates that the CLOBBER_FREED_MEMORY testing hack
I put into aset.c needs more work; it ought to clobber implicitly-freed
memory as well as explicitly pfree'd blocks.  Had I done that I would
probably have seen a regression test failure from this bug.  Will add
some more clobbering code and see what else breaks ;-)
        regards, tom lane


pgsql-hackers by date:

Previous
From: Patrick Welche
Date:
Subject: Re: [HACKERS] alter_table.sql
Next
From: Bruce Momjian
Date:
Subject: Re: [HACKERS] regex (from TODO)