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

Euler Taveira <euler@eulerto.com>

From: "Euler Taveira" <euler@eulerto.com>
To: "houzj.fnst@fujitsu.com" <houzj.fnst@fujitsu.com>, "Michael Paquier" <michael@paquier.xyz>
Cc: "Amit Kapila" <amit.kapila16@gmail.com>, "Alvaro Herrera" <alvherre@alvh.no-ip.org>, "Postgres hackers" <pgsql-hackers@lists.postgresql.org>
Date: 2024-12-05T15:39:26Z
Lists: pgsql-hackers
On Thu, Dec 5, 2024, at 1:31 AM, Zhijie Hou (Fujitsu) wrote:
> No problem. Here is the patch for the HEAD. This patch introduces a new memory
> context within PGOutputData, specifically for allocating memory for
> publication_names. The new memory context is nested under the logical decoding
> context, ensuring it is freed at the end of decoding through
> FreeDecodingContext.

Thanks for taking care of it. I suggest 2 small adjustments: (a) use
ALLOCSET_SMALL_SIZES instead of ALLOCSET_DEFAULT_SIZES and (b) replace
pubmemcxt with pubmemctx (that's the same abbreviation used by
cachectx). I think you could remove 'mem' from this variable. My
suggestions are pubcxt or pubnamescxt. Although, I prefer the former, if
other publication elements are added to this context in the future.


--
Euler Taveira
EDB   https://www.enterprisedb.com/

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.