Re: Bound memory usage during manual slot sync retries

Xuneng Zhou <xunengzhou@gmail.com>

From: Xuneng Zhou <xunengzhou@gmail.com>
To: Amit Kapila <amit.kapila16@gmail.com>
Cc: pgsql-hackers <pgsql-hackers@lists.postgresql.org>, "itsajin@gmail.com" <itsajin@gmail.com>, "Zhijie Hou (Fujitsu)" <houzj.fnst@fujitsu.com>
Date: 2026-05-26T20:01:09Z
Lists: pgsql-hackers
> On Mon, May 25, 2026 at 7:03 PM Amit Kapila <amit.kapila16@gmail.com>
> wrote:
> >
> > Okay, then let's go with a per-retry memory context approach.
> >
> > @@ -579,6 +579,8 @@ drop_local_obsolete_slots(List *remote_slot_list)
> >      local_slot->data.database));
> >   }
> >   }
> > +
> > + list_free(local_slots);
> >  }
> >
> > Why do we need this retail pfree if the caller is using memory context?
> >
>
> I see that the latest patch in email [1] has already addressed this
> point. So, I'll push the v2 version.
>
> [1] -
> https://www.postgresql.org/message-id/CABPTF7WB4Z62sPoZkhSygOCAo3OiTDLpMELxZDuwCb3HYgM_pQ%40mail.gmail.com


Thanks. My original reasoning for adding the pfree here was to act as a
safety guard in case other future callers might not manage the memory
properly. But Zhijie pointed out that this double-free pattern is not
favored in previous community discussions. I'll post the  worst-case test
and its results later.


Regards,
Xuneng Zhou
HighGo Software Co., Ltd.