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: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>,
Andres Freund <andres@anarazel.de>, Petr Jelinek <petr.jelinek@enterprisedb.com>, Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Date: 2021-05-27T04:05:37Z
Lists: pgsql-hackers
On Thu, May 27, 2021 at 9:03 AM Amit Kapila <amit.kapila16@gmail.com> wrote: > > On Thu, Mar 25, 2021 at 11:04 AM Ashutosh Bapat > <ashutosh.bapat.oss@gmail.com> wrote: > > > > Hi All, > > We saw OOM in a system where WAL sender consumed Gigabttes of memory > > which was never released. Upon investigation, we found out that there > > were many ReorderBufferToastHash memory contexts linked to > > ReorderBuffer context, together consuming gigs of memory. They were > > running INSERT ... ON CONFLICT .. among other things. A similar report > > at [1] > > > .. > > > > but by then we might have reused the toast_hash and thus can not be > > destroyed. But that isn't the problem since the reused toast_hash will > > be destroyed eventually. > > > > It's only when the change next to speculative insert is something > > other than INSERT/UPDATE/DELETE that we have to worry about a > > speculative insert that was never confirmed. So may be for those > > cases, we check whether specinsert != null and destroy toast_hash if > > it exists. > > > > Can we consider the possibility to destroy the toast_hash in > ReorderBufferCleanupTXN/ReorderBufferTruncateTXN? It will delay the > clean up of memory till the end of stream or txn but there won't be > any memory leak. Currently, we are ignoring XLH_DELETE_IS_SUPER, so maybe we can do something based on this flag? -- 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