| From: | Michael Paquier <michael(at)paquier(dot)xyz> |
|---|---|
| To: | DaeMyung Kang <charsyam(at)gmail(dot)com> |
| Cc: | pgsql-hackers(at)lists(dot)postgresql(dot)org |
| Subject: | Re: [PATCH] Fix memory leak of reply_message in walreceiver |
| Date: | 2026-04-27 00:46:02 |
| Message-ID: | ae6xymlfUepxsT6n@paquier.xyz |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Mon, Apr 27, 2026 at 01:59:09AM +0900, DaeMyung Kang wrote:
> initStringInfo() unconditionally allocates a fresh ~1KB buffer with
> palloc() and overwrites the existing data pointer without freeing the
> previous one. So every time the walreceiver re-enters the streaming
> path -- e.g., after a timeline switch, end-of-WAL, or any other
> condition that drives the outer for(;;) loop to iterate -- the prior
> buffer is leaked. The leak is bounded per streaming restart but
> accumulates over the lifetime of a long-running standby that
> restarts streaming often.
This is a problem similar to [1], and I'd agree about cleaning that up
properly.
> This appears to date back to commit add6c3179a4 ("Make the streaming
> replication protocol messages architecture-independent.", 2012), so
> the fix is likely a candidate for back-patching to all supported
> branches.
This is minor, so I don't really see a point in back-patching. Same
reason as the other thread.
I'll go merge that together.
[1]: https://www.postgresql.org/message-id/ae6vp9L-GUb0ERTF@paquier.xyz
--
Michael
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Michael Paquier | 2026-04-27 00:50:28 | Re: Fix bug with accessing to temporary tables of other sessions |
| Previous Message | Michael Paquier | 2026-04-27 00:36:55 | Re: [PATCH] Fix memory leak of primary_sysid in walreceiver |