Re: Small memory fixes for pg_createsubcriber
Ranier Vilela <ranier.vf@gmail.com>
From: Ranier Vilela <ranier.vf@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Andres Freund <andres@anarazel.de>, Euler Taveira <euler@eulerto.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2025-02-12T16:46:38Z
Lists: pgsql-hackers
Attachments
- fix-api-misuse-pg_amcheck.patch (application/octet-stream) patch
Hi. Em qua., 12 de fev. de 2025 às 13:02, Tom Lane <tgl@sss.pgh.pa.us> escreveu: > Andres Freund <andres@anarazel.de> writes: > > On 2025-02-11 13:32:32 -0300, Euler Taveira wrote: > >> There is no bug. They are the same behind the scenes. > > > That *is* a bug. On windows the allocator that a shared library (i.e. > libpq) > > uses, may *not* be the same as the one that an executable > > (i.e. pg_createsubscriber). It's not correct to free memory allocated > in a > > shared library just with free, it has to go through the library's free. > > Indeed. This is particularly pernicious because it will work even on > Windows under common scenarios (which no doubt explains the lack of > field reports). From the last time we discussed this [1]: > > It seems to work fine as long as a debug-readline is paired with a > debug-psql or a release-readline is paired with a release-psql. > > I wish we had some way to detect misuses automatically ... > Unfortunately, for now, there is only manual search. In fact, after your post, I did a new search and found two other occurrences. (src/bin/pg_amcheck/pg_amcheck.c) One fixed in the patch attached. Another *dat->amcheck_schema* is it not worth the effort, since the memory is not released at any point? Trivial patch attached. best regards, Ranier Vilela
Commits
-
pg_upgrade: Fix inconsistency in memory freeing
- 9ca2145b00fb 16.9 landed
- ee78823ff5f6 17.5 landed
- 2a083ab807db 18.0 landed
-
pg_amcheck: Fix inconsistency in memory freeing
- 35a591a0486f 14.18 landed
- ec741d48036a 15.13 landed
- 816149dc6bf9 16.9 landed
- f903d4da9276 17.5 landed
- 48e4ae9a0707 18.0 landed
-
Fix some inconsistencies with memory freeing in pg_createsubscriber
- ff6d9cfcb17e 17.4 landed
- 5b94e2753439 18.0 landed
-
Drop pre-existing subscriptions from the converted subscriber.
- 4867f8a555ce 18.0 cited