Parallel Bitmap Heap Scans segfaults due to (tbm->dsa==NULL) on PostgreSQL 10
Tomas Vondra <tomas.vondra@2ndquadrant.com>
From: Tomas Vondra <tomas.vondra@2ndquadrant.com>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2017-10-12T11:01:24Z
Lists: pgsql-hackers
Attachments
- backtrace-simple.txt (text/plain)
- plan-simple.txt (text/plain)
- query-simple.txt (text/plain)
- query.sql (application/sql)
- plan.txt (text/plain)
- backtrace.txt (text/plain)
Hi, It seems that Q19 from TPC-H is consistently failing with segfaults due to calling tbm_prepare_shared_iterate() with (tbm->dsa==NULL). I'm not very familiar with how the dsa is initialized and passed around, but I only see the failures when the bitmap is constructed by a mix of BitmapAnd and BitmapOr operations. Another interesting observation is that setting force_parallel_mode=on may not be enough - there really need to be multiple parallel workers, which is why the simple query does cpu_tuple_cost=1. Attached is a bunch of files: 1) details for "full" query: * query.sql * plan.txt * backtrace.txt 2) details for the "minimal" query triggering the issue: * query-minimal.sql * plan-minimal.txt * backtrace-minimal.txt regards -- Tomas Vondra http://www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Commits
-
Fix possible crash with Parallel Bitmap Heap Scan.
- a3b1c221893f 10.1 landed
- 6393613b6a1e 11.0 landed