Thread: BUG #18225: chdb's s3 table function crashes postgresql with plpython3

BUG #18225: chdb's s3 table function crashes postgresql with plpython3

From
PG Bug reporting form
Date:
The following bug has been logged on the website:

Bug reference:      18225
Logged by:          Bing Sun
Email address:      subi.the.dream.walker@gmail.com
PostgreSQL version: 16.0
Operating system:   AlmaLinux-9.2
Description:

Hi,

I am playing around chdb (https://github.com/chdb-io/chdb), which is an
embedded clickhouse engine. The python binding of chdb enables the usage
with plpython3.

The following anonymous block causes a server termination:
======= 
do language plpython3u $$
import chdb
chdb.query(sql='''select * from
s3('https://datasets-documentation.s3.eu-west-3.amazonaws.com/aapl_stock.csv')
limit 10''')
$$
=======

The related logs:
=======
2023-12-04 13:36:28.086 UTC [3202531] LOG:  server process (PID 3216826) was
terminated by signal 6: Aborted
2023-12-04 13:36:28.086 UTC [3202531] DETAIL:  Failed process was running:
do language plpython3u $$
        import chdb
        chdb.query(sql='''select * from
s3('https://datasets-documentation.s3.eu-west-3.amazonaws.com/aapl_stock.csv')
limit 10''')
        $$
2023-12-04 13:36:28.086 UTC [3202531] LOG:  terminating any other active
server processes
2023-12-04 13:36:28.087 UTC [3202531] LOG:  all server processes terminated;
reinitializing
=======

I've experimented just fine with several other features, e.g., queries &
file table function.

I am not sure if here is the right place to raise the issue. I've reported
on the github repo (https://github.com/chdb-io/chdb/issues/139) but it seems
not a chdb issue because the query runs fine within a chdb python session.

Thanks.


Re: BUG #18225: chdb's s3 table function crashes postgresql with plpython3

From
Tom Lane
Date:
PG Bug reporting form <noreply@postgresql.org> writes:
> The following anonymous block causes a server termination:
> =======
> do language plpython3u $$
> import chdb
> chdb.query(sql='''select * from
> s3('https://datasets-documentation.s3.eu-west-3.amazonaws.com/aapl_stock.csv')
> limit 10''')
> $$
> =======

> The related logs:
> =======
> 2023-12-04 13:36:28.086 UTC [3202531] LOG:  server process (PID 3216826) was
> terminated by signal 6: Aborted

The useful details would have appeared *before* this message.
Look for TRAP: lines, or possibly python-generated messages.
(This could easily have been a python-internal abort, rather
than anything Postgres did.)  Also there might be a stack trace.

            regards, tom lane