Re: Memory leak in WAL sender with pgoutput (v10~)

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: vignesh C <vignesh21@gmail.com>
Cc: Amit Kapila <amit.kapila16@gmail.com>, Masahiko Sawada <sawada.mshk@gmail.com>, "Zhijie Hou (Fujitsu)" <houzj.fnst@fujitsu.com>, Euler Taveira <euler@eulerto.com>, Alvaro Herrera <alvherre@alvh.no-ip.org>, Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2024-12-10T04:11:43Z
Lists: pgsql-hackers
On Tue, Dec 10, 2024 at 03:24:19AM +0000, vignesh C wrote:
> Yes, that makes sense. How about something like the attached patch.

So you have this bit hidden in 7f481b8d3884, causing a small conflict
when cherry-picking the change from 15 to 14:

-            oldctx = MemoryContextSwitchTo(CacheMemoryContext);
-            if (data->publications)
-                list_free_deep(data->publications);
+            static MemoryContext pubctx = NULL;
[...]
-            if (data->publications)
-            {
-                list_free_deep(data->publications);
-                data->publications = NIL;
-            }
+            static MemoryContext pubctx = NULL;

Your versions look OK at quick glance, for the publication list
caching.
--
Michael

Commits

  1. Fix memory leak in pgoutput with relation attribute map

  2. Fix memory leak in pgoutput with publication list cache

  3. Allow specifying row filters for logical replication of tables.