Re: BUG #15225: [XX000] ERROR: invalid DSA memory alloc request size 1073741824 / Where: parallel worker
Thomas Munro <thomas.munro@enterprisedb.com>
From: Thomas Munro <thomas.munro@enterprisedb.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Frits Jalvingh <jal@etc.to>, pgsql-bugs@lists.postgresql.org
Date: 2018-06-08T03:09:38Z
Lists: pgsql-bugs
On Thu, Jun 7, 2018 at 4:23 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > Frits Jalvingh <jal@etc.to> writes: >> The "good" news is that this effect is apparently caused by something else. >> I fired those statements through an IDE (IntelliJ) written in Java and >> using jdbc. There seems to be something odd going on in there, because when >> I paste the query in psql then the effect with and without explain looks >> the same: 3 processes of which 2 "parallel workers" doing enormous amounts >> of I/O at 50..90% CPU. I will try to find out what easter egg in either >> that IDE or the JDBC driver causes this 8-/. > > Ah. Something about query parameterization, is my bet. The symptoms match this other report I just diagnosed over here: https://www.postgresql.org/message-id/CAEepm%3D3rvRBxD_g8RngT6nAtUuTdGskL0xdDK3WXroebLDRwgg%40mail.gmail.com We only allow parallelism if you asked for all rows to be returned, but these GUI tools ask for a limited number. This is probably an unintended consequence of commit 691b8d59, but I'm not sure. Let's discuss that over in that other thread. -- Thomas Munro 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