From: | "Hayato Kuroda (Fujitsu)" <kuroda(dot)hayato(at)fujitsu(dot)com> |
---|---|
To: | 'Shubham Khanna' <khannashubham1197(at)gmail(dot)com>, Euler Taveira <euler(at)eulerto(dot)com> |
Cc: | Shlok Kyal <shlok(dot)kyal(dot)oss(at)gmail(dot)com>, Peter Eisentraut <peter(at)eisentraut(dot)org>, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, Tomas Vondra <tomas(dot)vondra(at)enterprisedb(dot)com>, "pgsql-hackers(at)lists(dot)postgresql(dot)org" <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Michael Paquier <michael(at)paquier(dot)xyz>, Andres Freund <andres(at)anarazel(dot)de>, Ashutosh Bapat <ashutosh(dot)bapat(dot)oss(at)gmail(dot)com>, Fabrízio de Royes Mello <fabriziomello(at)gmail(dot)com>, vignesh C <vignesh21(at)gmail(dot)com> |
Subject: | RE: speed up a logical replica setup |
Date: | 2024-03-25 11:48:05 |
Message-ID: | OS7PR01MB12081B492E038E0299D816BBAF5362@OS7PR01MB12081.jpnprd01.prod.outlook.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Dear Shubham,
> I had run valgrind with pg_createsubscriber to see if there were any
> issues.
Thanks for running the tool!
> Valgrind reported the following issues:
> ==651272== LEAK SUMMARY:
> ==651272== definitely lost: 1,319 bytes in 18 blocks
> ==651272== indirectly lost: 1,280 bytes in 2 blocks
> ==651272== possibly lost: 44 bytes in 3 blocks
> ==651272== still reachable: 3,066 bytes in 22 blocks
> ==651272== suppressed: 0 bytes in 0 blocks
> ==651272==
> ==651272== For lists of detected and suppressed errors, rerun with: -s
> ==651272== ERROR SUMMARY: 17 errors from 17 contexts (suppressed: 0 from
> 0)
> The attached report has the details of the same.
I read the report. I'm not sure all entries must be fixed. Based on other client
tools, old discussions [1], and current codes, I thought we could determine the below
rule:
* For global variables (and their attributes), no need to free the allocated memory.
* For local variables (and their attributes) in main(), no need to free the allocated memory.
* For local variables in other functions, they should be free'd at the end of the function.
Per above rule and your report, I made a top-up patch which adds pg_free() and
destroyPQExpBuffer() several places. How do you think?
[1]: https://www.postgresql.org/message-id/40595e73-c7e1-463a-b8be-49792e870007%40app.fastmail.com
Best Regards,
Hayato Kuroda
FUJITSU LIMITED
https://www.fujitsu.com/
Attachment | Content-Type | Size |
---|---|---|
v34-0001-pg_createsubscriber-creates-a-new-logical-replic.patch | application/octet-stream | 100.8 KB |
v34-0002-Remove-How-it-Works-section.patch | application/octet-stream | 5.9 KB |
v34-0003-Check-both-servers-before-exiting.patch | application/octet-stream | 3.3 KB |
v34-0004-Free-malloc-d-memory-if-no-variables-could-be-re.patch | application/octet-stream | 1.7 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | shveta malik | 2024-03-25 11:54:25 | Re: Introduce XID age and inactive timeout based replication slot invalidation |
Previous Message | David Rowley | 2024-03-25 11:41:57 | Re: Add bump memory context type and use it for tuplesorts |