Re: Getting better results from valgrind leak tracking - Mailing list pgsql-hackers

From David Rowley
Subject Re: Getting better results from valgrind leak tracking
Date
Msg-id CAApHDvqyQVSdcEOuLgXKak4+MJbgEumV4+2kOO-oc5Uyi93EiQ@mail.gmail.com
Whole thread Raw
Responses Re: Getting better results from valgrind leak tracking  (Andres Freund <andres@anarazel.de>)
List pgsql-hackers
On Wed, 17 Mar 2021 at 15:31, Andres Freund <andres@anarazel.de> wrote:
> I'm a bit confused about the precise design of rs_private /
> ParallelBlockTableScanWorkerData, specifically why it's been added to
> TableScanDesc, instead of just adding it to HeapScanDesc? And why is it
> allocated unconditionally, instead of just for parallel scans?

That's a good point. In hindsight, I didn't spend enough effort
questioning that design in the original patch.  I see now that the
rs_private field makes very little sense as we can just store what's
private to heapam in HeapScanDescData.

I've done that in the attached.  I added the
ParallelBlockTableScanWorkerData as a pointer field in
HeapScanDescData and change it so we only allocate memory for it for
just parallel scans.  The field is left as NULL for non-parallel
scans.

I've also added a pfree in heap_endscan() to free the memory when the
pointer is not NULL. I'm hoping that'll fix the valgrind warning, but
I've not run it to check.

David

Attachment

pgsql-hackers by date:

Previous
From: Stephen Frost
Date:
Subject: Re: Add docs stub for recovery.conf
Next
From: Zi Yi Xu
Date:
Subject: Pgsql Google Summer of Code