postgresql is crashing when selecting from citus columnar table
Hello,
we have a problem that postgresql is crashing when we left join citus table on heap tables. OS Redhat 8.9 , Postgresql 16.3 , Citus 12.1.4
How to reproduce:
create extension citus; create table test1 (a integer); create table test2 (a integer); create table test3 (b integer) using columnar;
SELECT * FROM test1 a1 LEFT JOIN test2 a2 ON a1.a = a2.a LEFT JOIN test3 b ON a2.a = b.b ;
server closed the connection unexpectedly
From logs: <2024-07-09 10:00:21.484 EEST%2048391%668cdfda.1f4187%%%> DETAIL: Failed process was running: select * FROM test1 a1 LEFT JOIN test2 a2 ON a1.a = a2.a left JOIN test3 b ON a2.a = b.b ; <2024-07-09 10:00:21.484 EEST%2048391%668cdfda.1f4187%%%> LOG: terminating any other active server processes <2024-07-09 10:00:21.489 EEST%2048570%668ce005.1f423a%[unknown]%[local]%[unknown]> LOG: connection received: host=[local] <2024-07-09 10:00:21.489 EEST%2048570%668ce005.1f423a%postgres%[local]%test> FATAL: the database system is in recovery mode <2024-07-09 10:00:21.492 EEST%2048391%668cdfda.1f4187%%%> LOG: all server processes terminated; reinitializing
Hello,
as a workaround for this you can set columnar.enable_custom_scan to false
Absolutely the same problem! It would be great to fix this bug as soon as possible...
Hello, It is enough to exclude outer_join_rels from candidateRelids in columnar_customscan.c FindCandidateRelids and it will work:
#if PG_VERSION_NUM >= PG_VERSION_16
candidateRelids = bms_del_members(candidateRelids, root->outer_join_rels);
#endif
Hi, we seem to be facing a similar issue, getting a Segmentation fault using multiple left join on columnar tables. What is the status of the issue, could it be integrated into a next release?
Hi, @Naralas Created https://github.com/citusdata/citus/pull/7703 We use a fork https://github.com/OlgaSergeyevaB/citus
Fixed by #7703 (commit 459c283e7) - thanks @OlgaSergeyevaB