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

Zhijie Hou (Fujitsu) <houzj.fnst@fujitsu.com>

From: "Zhijie Hou (Fujitsu)" <houzj.fnst@fujitsu.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: Amit Kapila <amit.kapila16@gmail.com>, Euler Taveira <euler@eulerto.com>, Alvaro Herrera <alvherre@alvh.no-ip.org>, Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2024-12-05T04:31:56Z
Lists: pgsql-hackers

Attachments

On Wednesday, December 4, 2024 7:39 PM Michael Paquier <michael@paquier.xyz> wrote:
> 
> On Wed, Dec 04, 2024 at 06:42:55AM +0000, Zhijie Hou (Fujitsu) wrote:
> > I can try to write a patch if no one else is working on this.
> 
> If you have some room to write a patch, that would be really nice.
> Thanks.

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.

I realized that this patch cannot be backpatched because it introduces a new
field into the public PGOutputData structure. Therefore, I think we may need to
use Alvaro's version [1] for the back branches.

[1] https://www.postgresql.org/message-id/202411300828.hwe55pzx5a4x%40alvherre.pgsql

Best Regards,
Hou zj

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.