Re: BUG #15225: [XX000] ERROR: invalid DSA memory alloc request size 1073741824 / Where: parallel worker
Frits Jalvingh <jal@etc.to>
From: Frits Jalvingh <jal@etc.to>
To: Dilip Kumar <dilipbalaut@gmail.com>
Cc: pgsql-bugs@lists.postgresql.org
Date: 2018-06-06T17:13:29Z
Lists: pgsql-bugs
Hi Dilip, That should not be possible; nothing else is using the DB on that machine as it is my development machine. On Wed, Jun 6, 2018 at 6:53 PM Dilip Kumar <dilipbalaut@gmail.com> wrote: > On Wed, Jun 6, 2018 at 3:45 PM, Frits Jalvingh <jal@etc.to> wrote: > >> Hi Thomas, >> >> I know that the message is about running out of memory, I just meant to >> say that it is a different message than before. Which led me to think that >> this might be another issue. But of course OOM can occur at many places and >> that might explain the different messages. >> >> As far as that explain thing goes, the odd thing seems to be that >> /without/ the explain the database uses a non parallel plan. If I execute >> the exact same statement without explain I see one postgres process running >> at 100% for a long time, then it produces its output proper. >> >> If I add the explain part to it I see three processes: the main process >> handling the EXPLAIN and two parallel workers. So the issue is that the >> explain plan actually uses another plan than the same statement without >> explain(!). This also explains the OOM, because indeed I see all processes >> gobble up memory like mad, growing to 12GB each and then it dies. >> > > There is also possiblility that it might have planned to use parallel > worker (which is shown in explain )but during actual execution it has not > got any free background worker (other parallel sessions might be using all > the workers). > > -- > Regards, > Dilip Kumar > EnterpriseDB: http://www.enterprisedb.com >
Commits
-
Limit Parallel Hash's bucket array to MaxAllocSize.
- 86a2218eb00e 11.0 landed
-
Allow for parallel execution whenever ExecutorRun() is done only once.
- 691b8d59281b 10.0 cited