From c7972bc8ee34ec111440bf948c0cebe476fd8cdb Mon Sep 17 00:00:00 2001 From: Baji Shaik Date: Fri, 5 Jun 2026 18:41:47 -0500 Subject: [PATCH 1/2] Fix memory leak in pgstat_progress_parallel_incr_param() When called from a parallel worker, pgstat_progress_parallel_incr_param() calls initStringInfo() on a static StringInfoData and then immediately calls pq_beginmessage(), which calls initStringInfo() again. The second call overwrites buf->data with a freshly palloc'd buffer, orphaning the first one. pq_endmessage() then frees only the second buffer, so each call leaks ~1 kB into the per-worker memory context. Fix by removing the redundant initStringInfo() call. Oversight of f1889729dd3 ("Add new parallel message type to progress reporting"). Author: Baji Shaik --- src/backend/utils/activity/backend_progress.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/backend/utils/activity/backend_progress.c b/src/backend/utils/activity/backend_progress.c index b0359771de5..6d2049105ab 100644 --- a/src/backend/utils/activity/backend_progress.c +++ b/src/backend/utils/activity/backend_progress.c @@ -100,8 +100,6 @@ pgstat_progress_parallel_incr_param(int index, int64 incr) { static StringInfoData progress_message; - initStringInfo(&progress_message); - pq_beginmessage(&progress_message, PqMsg_Progress); pq_sendint32(&progress_message, index); pq_sendint64(&progress_message, incr); -- 2.50.1 (Apple Git-155)