Re: Avoid memory leaks during base backups
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>, Cary Huang <cary.huang@highgo.ca>, pgsql-hackers@lists.postgresql.org
Date: 2022-10-21T06:18:14Z
Lists: pgsql-hackers
On Thu, Oct 20, 2022 at 02:51:21PM -0400, Robert Haas wrote: > On Thu, Oct 20, 2022 at 1:35 PM Bharath Rupireddy > <bharath.rupireddyforpostgres@gmail.com> wrote: >> I think elsewhere in the code we reset dangling pointers either ways - >> before or after deleting/resetting memory context. But placing them >> before would give us extra safety in case memory context >> deletion/reset fails. Not sure what's the best way. > > I think it's OK to assume that deallocating memory will always > succeed, so it doesn't matter whether you do it just before or just > after that. But it's not OK to assume that *allocating* memory will > always succeed. AFAIK, one of the callbacks associated to a memory context could fail, see comments before MemoryContextCallResetCallbacks() in MemoryContextDelete(). I agree that it should not matter here, but I think that it is better to reset the pointers before attempting the deletion of the memory context in this case. -- Michael
Commits
-
Improve memory handling across SQL-callable backup functions
- 6cc66197ff9a 16.0 landed