Re: [HACKERS] Re: check failure with -DRELCACHE_FORCE_RELEASE -DCLOBBER_FREED_MEMORY - Mailing list pgsql-hackers

From Tom Lane
Subject Re: [HACKERS] Re: check failure with -DRELCACHE_FORCE_RELEASE -DCLOBBER_FREED_MEMORY
Date
Msg-id 22846.1488660113@sss.pgh.pa.us
Whole thread Raw
In response to [HACKERS] Re: check failure with -DRELCACHE_FORCE_RELEASE-DCLOBBER_FREED_MEMORY  (Andrew Dunstan <andrew.dunstan@2ndquadrant.com>)
Responses Re: [HACKERS] Re: check failure with -DRELCACHE_FORCE_RELEASE -DCLOBBER_FREED_MEMORY  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
Andrew Dunstan <andrew.dunstan@2ndquadrant.com> writes:
> On 03/03/2017 02:24 PM, Andrew Dunstan wrote:
>> I have been setting up a buildfarm member with -DRELCACHE_FORCE_RELEASE
>> -DCLOBBER_FREED_MEMORY, settings which Alvaro suggested to me.I got core
>> dumps with these stack traces. The platform is Amazon Linux.

> I have replicated this on a couple of other platforms (Fedora, FreeBSD)
> and back to 9.5. The same failure doesn't happen with buildfarm runs on
> earlier branches, although possibly they don't have the same set of tests.

well, the problem in rebuild_relation() seems pretty blatant:
   /* Close relcache entry, but keep lock until transaction commit */   heap_close(OldHeap, NoLock);
   /* Create the transient table that will receive the re-ordered data */   OIDNewHeap = make_new_heap(tableOid,
tableSpace,                             OldHeap->rd_rel->relpersistence,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                             AccessExclusiveLock);
 

There are two such references after the heap_close.  I don't know that
those are the only bugs, but this reference is certainly the proximate
cause of the crash I'm seeing.

Will push a fix in a little bit.
        regards, tom lane



pgsql-hackers by date:

Previous
From: Peter Eisentraut
Date:
Subject: Re: [HACKERS] Change in "policy" on dump ordering?
Next
From: Tom Lane
Date:
Subject: Re: [HACKERS] Re: check failure with -DRELCACHE_FORCE_RELEASE -DCLOBBER_FREED_MEMORY