| From: | David Rowley <dgrowleyml(at)gmail(dot)com> |
|---|---|
| To: | Andres Freund <andres(at)anarazel(dot)de> |
| Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, PostgreSQL Developers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
| Subject: | Re: Getting better results from valgrind leak tracking |
| Date: | 2021-03-28 22:48:47 |
| Message-ID: | CAApHDvqyQVSdcEOuLgXKak4+MJbgEumV4+2kOO-oc5Uyi93EiQ@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Wed, 17 Mar 2021 at 15:31, Andres Freund <andres(at)anarazel(dot)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 | Content-Type | Size |
|---|---|---|
| parallel_chunk_fix.patch | text/plain | 4.1 KB |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Zi Yi Xu | 2021-03-28 22:52:28 | Pgsql Google Summer of Code |
| Previous Message | Stephen Frost | 2021-03-28 21:20:41 | Re: Add docs stub for recovery.conf |