Re: Out of Memory errors are frustrating as heck!
Alvaro Herrera <alvherre@2ndquadrant.com>
From: Alvaro Herrera <alvherre@2ndquadrant.com>
To: Gunther <raj@gusw.net>
Cc: Jeff Janes <jeff.janes@gmail.com>, Tomas Vondra <tomas.vondra@2ndquadrant.com>, pgsql-performance@lists.postgresql.org, Tom Lane <tgl@sss.pgh.pa.us>, Justin Pryzby <pryzby@telsasoft.com>
Date: 2019-04-15T17:38:48Z
Lists: pgsql-performance
Attachments
- mintup-free.patch (text/x-diff) patch
On 2019-Apr-15, Gunther wrote: > #0 AllocSetAlloc (context=0x1168230, size=385) at aset.c:715 > #1 0x000000000084e6cd in palloc (size=385) at mcxt.c:938 > #2 0x000000000061019c in ExecHashJoinGetSavedTuple (file=file@entry=0x8bbc528, hashvalue=hashvalue@entry=0x7fff2e4ca76c, > tupleSlot=0x10856b8, hjstate=0x11688e0) at nodeHashjoin.c:1277 > #3 0x0000000000610c83 in ExecHashJoinNewBatch (hjstate=0x11688e0) at nodeHashjoin.c:1042 Seems that ExecHashJoinGetSavedTuple stores a minimalTuple and sets the shouldFree flag to "true", and then in ExecHashJoinNewBatch, callee ExecFetchSlotMinimalTuple sets shouldFree to false inconditionally when the slot uses minimal tuple ops. Maybe that's correct, but it does sound like a memory leak is not entirely impossible. I wonder if this fixes it, without causing crashes elsewhere. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Commits
-
Consider BufFiles when adjusting hashjoin parameters
- a1b4f289beec 18.0 landed
-
Allocate hash join files in a separate memory context
- 8c4040edf456 16.0 landed