Re: Decoding speculative insert with toast leaks memory
Dilip Kumar <dilipbalaut@gmail.com>
From: Dilip Kumar <dilipbalaut@gmail.com>
To: Amit Kapila <amit.kapila16@gmail.com>
Cc: Andres Freund <andres@anarazel.de>,
Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>, Peter Eisentraut <peter.eisentraut@2ndquadrant.com>, Petr Jelinek <petr.jelinek@enterprisedb.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Tomas Vondra <tomas.vondra@enterprisedb.com>
Date: 2021-05-31T03:20:16Z
Lists: pgsql-hackers
On Mon, 31 May 2021 at 8:21 AM, Amit Kapila <amit.kapila16@gmail.com> wrote: > On Sat, May 29, 2021 at 5:45 PM Tomas Vondra > <tomas.vondra@enterprisedb.com> wrote: > > > > On 5/29/21 6:29 AM, Amit Kapila wrote: > > > On Fri, May 28, 2021 at 5:16 PM Tomas Vondra > > > <tomas.vondra@enterprisedb.com> wrote: > > >> > > >> I wonder if there's a way to free the TOASTed data earlier, instead of > > >> waiting until the end of the transaction (as this patch does). > > >> > > > > > > IIUC we are anyway freeing the toasted data at the next > > > insert/update/delete. We can try to free at other change message types > > > like REORDER_BUFFER_CHANGE_MESSAGE but as you said that may make the > > > patch more complex, so it seems better to do the fix on the lines of > > > what is proposed in the patch. > > > > > > > +1 > > > > Even if we started doing what you mention (freeing the hash for other > > change types), we'd still need to do what the patch proposes because the > > speculative insert may be the last change in the transaction. For the > > other cases it works as a mitigation, so that we don't leak the memory > > forever. > > > > Right. > > > So let's get this committed, perhaps with a comment explaining that it > > might be possible to reset earlier if needed. > > > > Okay, I think it would be better if we can test this once for the > streaming case as well. Dilip, would you like to do that and send the > updated patch as per one of the comments by Tomas? I will do that in sometime. > -- Regards, Dilip Kumar EnterpriseDB: http://www.enterprisedb.com
Commits
-
Fix ABI break introduced by commit 4daa140a2f.
- e95f617acc48 11.13 landed
- 72b51e214a2c 12.8 landed
- 56e366f6757d 13.4 landed
-
Fix valgrind issue in pgoutput.c.
- 357cb8f07f95 13.4 landed
-
Fix decoding of speculative aborts.
- 43acadfcebec 9.6.23 landed
- 35f56c124a7a 10.18 landed
- 1f8a934e0a86 11.13 landed
- 40ad7ebff6ca 12.8 landed
- 602a32a685e4 13.4 landed
- 4daa140a2f50 14.0 landed
-
pgoutput: Fix memory leak due to RelationSyncEntry.map.
- d2505681211b 13.4 cited
-
Fix initialization of RelationSyncEntry for streaming transactions.
- 69bd60672af6 14.0 cited
-
Implement streaming mode in ReorderBuffer.
- 7259736a6e5b 14.0 cited