Re: lsyscache: free IndexAmRoutine objects returned by GetIndexAmRoutineByAmId()
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Matthias van de Meent <boekewurm+postgres@gmail.com>
Cc: Álvaro Herrera <alvherre@kurilemu.de>, Chao Li <li.evan.chao@gmail.com>, Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-12-30T15:25:00Z
Lists: pgsql-hackers
Matthias van de Meent <boekewurm+postgres@gmail.com> writes: > On Tue, 30 Dec 2025 at 15:15, Álvaro Herrera <alvherre@kurilemu.de> wrote: >> One thing we can perhaps do is (in assert-enabled builds) to detect >> whether memory usage for that context has increased during >> InitIndexAmRoutine and raise a warning if so. Then extension authors >> would realize this and have a chance to fix it promptly. > Hmm, wouldn't we be able to detect changes in > MemoryContextMemConsumed(ctx, counters) with one before and one after > GetIndexAmRoutine(), such as included below? I don't think we can do this, because there are effects that the amhandler doesn't have control over. In particular, if we have to load its pg_proc row into syscache during fmgr_info, I don't think that is positively guaranteed not to leak anything. (This isn't a factor for built-in AMs, which will take the fast path in fmgr_info, but it will be an issue for extensions.) I am not terribly concerned by one-time leaks of that sort, so I don't really feel an urge to try to complain about them. regards, tom lane