Re: Memory leak in WAL sender with pgoutput (v10~)
Alvaro Herrera <alvherre@alvh.no-ip.org>
From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: Amit Kapila <amit.kapila16@gmail.com>
Cc: Michael Paquier <michael@paquier.xyz>, Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2024-12-02T20:42:52Z
Lists: pgsql-hackers
On 2024-Dec-02, Amit Kapila wrote: > We already have PGOutputData->cachectx which could be used for it. > I think we should be able to reset such a context when we are > revalidating the publications. I don't see that context being reset anywhere, so I have a hard time imagining that this would work without subtle risk of breakage elsewhere. > Even, if we want a new context for some localized handling, we should > add that in PGOutputData rather than a local context as the proposed > patch is doing at the very least for HEAD. I don't necessarily agree, given that this context is not needed anywhere else. > Can't we consider freeing the publication names individually that can > be backpatchable and have no or minimal risk of breaking anything? That was my first thought, but then it occurred to me that such a thing would be totally pointless. > > you call anything that loads a Publication depending on how the caller > > caches its data. So I would still choose for modifying the structure > > on HEAD removing the pstrdup() for the publication name. > > BTW, the subscription structure also used the name in a similar way. > This will make the publication/subscription names handled differently. True (with conninfo, slotname, synccommit, and origin). FWIW it seems FreeSubscription is incomplete, and not only because it fails to free the publication names ... (Why are we storing a string in Subscription->synccommit?) -- Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/ "Los trabajadores menos efectivos son sistematicamente llevados al lugar donde pueden hacer el menor daño posible: gerencia." (El principio Dilbert)
Commits
-
Fix memory leak in pgoutput with relation attribute map
- a786cf04df76 13.19 landed
- c53d90bb47ae 14.16 landed
- da8bd5d424e0 15.11 landed
- e3a27fd06d06 16.7 landed
- 836435424ba8 17.3 landed
- c9b3d4909bbf 18.0 landed
-
Fix memory leak in pgoutput with publication list cache
- ba230ce40faa 13.19 landed
- cfd6cbcf9be0 14.16 landed
- 6c9b3975407d 15.11 landed
- 4d45e7490c41 16.7 landed
- bbe68c13abe0 17.3 landed
- f0c569d71515 18.0 landed
-
Allow specifying row filters for logical replication of tables.
- 52e4f0cd472d 15.0 cited