You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Sometimes you need to reproduce this sql-scripts several time to reproduce segfault.
SELECT duckdb.install_extension('aws');
SELECT duckdb.install_extension('postgres');
CREATE TABLE table_missing_attrs(id int);
INSERT INTO table_missing_attrs VALUES (1);
DROP TABLE table_missing_attrs;
CREATE TABLE t (a int, b text);
INSERT INTO t VALUES (1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e');
INSERT INTO t VALUES (2, 'f'), (3, 'g'), (4, 'h');
SELECT approx_count_distinct(a), approx_count_distinct(b) FROM t; --server crashes here
backtrace:
#0 0x00007f67705dd135 in duckdb::CatalogEntry::~CatalogEntry() () from /tmp/pgsql/lib/libduckdb.so
#1 0x00007f6774f9ea89 in pgduckdb::PostgresTable::~PostgresTable (this=0x55b610cd0df0, __in_chrg=<optimized out>) at src/catalog/pgduckdb_table.cpp:25
#2 0x00007f6774fa176e in std::default_delete<pgduckdb::PostgresTable>::operator() (__ptr=<optimized out>, this=<optimized out>) at /usr/include/c++/12/bits/unique_ptr.h:89
#3 std::unique_ptr<pgduckdb::PostgresTable, std::default_delete<pgduckdb::PostgresTable> >::~unique_ptr (this=0x55b610cd1e18, __in_chrg=<optimized out>)
at /usr/include/c++/12/bits/unique_ptr.h:396
#4 duckdb::unique_ptr<pgduckdb::PostgresTable, std::default_delete<pgduckdb::PostgresTable>, true>::~unique_ptr (this=0x55b610cd1e18, __in_chrg=<optimized out>)
at third_party/duckdb/src/include/duckdb/common/unique_ptr.hpp:13
#5 std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, duckdb::unique_ptr<pgduckdb::PostgresTable, std::default_delete<pgduckdb::PostgresTable>, true> >::~pair (this=0x55b610cd1df8, __in_chrg=<optimized out>) at /usr/include/c++/12/bits/stl_pair.h:185
#6 std::__new_allocator<std::__detail::_Hash_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, duckdb::unique_ptr<pgduckdb::PostgresTable, std::default_delete<pgduckdb::PostgresTable>, true> >, true> >::destroy<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, duckdb::unique_ptr<pgduckdb::PostgresTable, std::default_delete<pgduckdb::PostgresTable>, true> > > (__p=0x55b610cd1df8, this=<optimized out>)
at /usr/include/c++/12/bits/new_allocator.h:181
#7 std::allocator_traits<std::allocator<std::__detail::_Hash_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, duckdb::unique_ptr<pgduckdb::PostgresTable, std::default_delete<pgduckdb::PostgresTable>, true> >, true> > >::destroy<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, duckdb::unique_ptr<pgduckdb::PostgresTable, std::default_delete<pgduckdb::PostgresTable>, true> > > (__p=0x55b610cd1df8, __a=...)
at /usr/include/c++/12/bits/alloc_traits.h:535
#8 std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, duckdb::unique_ptr<pgduckdb::PostgresTable, std::default_delete<pgduckdb::PostgresTable>, true> >, true> > >::_M_deallocate_node (this=0x55b610b73c60, __n=0x55b610cd1df0)
at /usr/include/c++/12/bits/hashtable_policy.h:1984
#9 std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, duckdb::unique_ptr<pgduckdb::PostgresTable, std::default_delete<pgduckdb::PostgresTable>, true> >, true> > >::_M_deallocate_nodes (__n=0x0, this=0x55b610b73c60)
at /usr/include/c++/12/bits/hashtable_policy.h:2006
#10 std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, duckdb::unique_ptr<pgduckdb::PostgresTable, std::default_delete<pgduckdb::PostgresTable>, true> >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, duckdb::unique_ptr<pgduckdb::PostgresTable, std::default_delete<pgduckdb::PostgresTable>, true> > >, std::__detail::_Select1st, duckdb::CaseInsensitiveStringEquality, duckdb::CaseInsensitiveStringHashFunction, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::clear (this=0x55b610b73c60) at /usr/include/c++/12/bits/hashtable.h:2500
#11 std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, duckdb::unique_ptr<pgduckdb::PostgresTable, std::default_delete<pgduckdb::PostgresTable>, true> >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, duckdb::unique_ptr<pgduckdb::PostgresTable, std::default_delete<pgduckdb::PostgresTable>, true> > >, std::__detail::_Select1st, duckdb::CaseInsensitiveStringEquality, duckdb::CaseInsensitiveStringHashFunction, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::~_Hashtable (this=0x55b610b73c60, __in_chrg=<optimized out>) at /usr/include/c++/12/bits/hashtable.h:1584
#12 std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, duckdb::unique_ptr<pgduckdb::PostgresTable, std::default_delete<pgduckdb::PostgresTable>, true>, duckdb::CaseInsensitiveStringHashFunction, duckdb::CaseInsensitiveStringEquality, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, duckdb::unique_ptr<pgduckdb::PostgresTable, std::default_delete<pgduckdb::PostgresTable>, true> > > >::~unordered_map (this=0x55b610b73c60,
__in_chrg=<optimized out>) at /usr/include/c++/12/bits/unordered_map.h:102
#13 pgduckdb::SchemaItems::~SchemaItems (this=0x55b610b73c38, __in_chrg=<optimized out>) at include/pgduckdb/catalog/pgduckdb_transaction.hpp:18
#14 std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, pgduckdb::SchemaItems>::~pair (this=0x55b610b73c18, __in_chrg=<optimized out>)
at /usr/include/c++/12/bits/stl_pair.h:185
#15 std::__new_allocator<std::__detail::_Hash_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, pgduckdb::SchemaItems>, true> >::destroy<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, pgduckdb::SchemaItems> > (__p=0x55b610b73c18, this=<optimized out>)
--Type <RET> for more, q to quit, c to continue without paging--
at /usr/include/c++/12/bits/new_allocator.h:181
#16 std::allocator_traits<std::allocator<std::__detail::_Hash_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, pgduckdb::SchemaItems>, true> > >::destroy<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, pgduckdb::SchemaItems> > (__p=0x55b610b73c18, __a=...)
at /usr/include/c++/12/bits/alloc_traits.h:535
#17 std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, pgduckdb::SchemaItems>, true> > >::_M_deallocate_node (this=0x55b610baf648, __n=0x55b610b73c10) at /usr/include/c++/12/bits/hashtable_policy.h:1984
#18 std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, pgduckdb::SchemaItems>, true> > >::_M_deallocate_nodes (__n=0x0, this=0x55b610baf648) at /usr/include/c++/12/bits/hashtable_policy.h:2006
#19 std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, pgduckdb::SchemaItems>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, pgduckdb::SchemaItems> >, std::__detail::_Select1st, duckdb::CaseInsensitiveStringEquality, duckdb::CaseInsensitiveStringHashFunction, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::clear (this=0x55b610baf648) at /usr/include/c++/12/bits/hashtable.h:2500
#20 0x00007f6774f9fe19 in std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, pgduckdb::SchemaItems, duckdb::CaseInsensitiveStringHashFunction, duckdb::CaseInsensitiveStringEquality, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, pgduckdb::SchemaItems> > >::clear (this=<optimized out>) at /usr/include/c++/12/bits/unordered_map.h:791
#21 pgduckdb::PostgresContextState::QueryEnd (this=<optimized out>) at src/catalog/pgduckdb_transaction.cpp:82
#22 pgduckdb::ClosePostgresRelations (context=...) at src/catalog/pgduckdb_transaction.cpp:19
#23 0x00007f6774fa2f70 in pgduckdb::PostgresTransactionManager::CommitTransaction (this=0x55b610b0b950, context=..., transaction=...)
at src/catalog/pgduckdb_transaction_manager.cpp:29
#24 0x00007f6770e5576d in duckdb::MetaTransaction::Commit() () from /tmp/pgsql/lib/libduckdb.so
#25 0x00007f6770e55bb3 in duckdb::TransactionContext::Commit() () from /tmp/pgsql/lib/libduckdb.so
#26 0x00007f6770caf9c8 in duckdb::ClientContext::PrepareInternal(duckdb::ClientContextLock&, duckdb::unique_ptr<duckdb::SQLStatement, std::default_delete<duckdb::SQLStatement>, true>) () from /tmp/pgsql/lib/libduckdb.so
#27 0x00007f6770cca683 in duckdb::ClientContext::Prepare(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /tmp/pgsql/lib/libduckdb.so
#28 0x00007f6774f940a4 in DuckdbPrepare (query=<optimized out>) at /usr/include/c++/12/bits/basic_string.tcc:238
#29 0x00007f6774f8bd5f in Duckdb_BeginCustomScan_Cpp (cscanstate=0x55b610b37b10, estate=0x55b610b378c0) at src/pgduckdb_node.cpp:76
#30 0x00007f6774f8d57b in pgduckdb::__CPPFunctionGuard__<void (*)(CustomScanState*, EState*, int), &(Duckdb_BeginCustomScan_Cpp(CustomScanState*, EState*, int)), CustomScanState*, EState*, int> (func_name=0x7f6774fc3e19 "Duckdb_BeginCustomScan") at src/pgduckdb_node.cpp:94
#31 0x000055b60e3a397e in ExecInitCustomScan (cscan=cscan@entry=0x55b610834090, estate=estate@entry=0x55b610b378c0, eflags=eflags@entry=32) at nodeCustom.c:108
#32 0x000055b60e390529 in ExecInitNode (node=node@entry=0x55b610834090, estate=estate@entry=0x55b610b378c0, eflags=eflags@entry=32) at execProcnode.c:290
#33 0x000055b60e3898ee in InitPlan (queryDesc=queryDesc@entry=0x55b610b344a0, eflags=eflags@entry=32) at execMain.c:960
#34 0x000055b60e389ad6 in standard_ExecutorStart (queryDesc=0x55b610b344a0, eflags=32) at execMain.c:261
#35 0x00007f6774f8afef in DuckdbExecutorStartHook (queryDesc=0x55b610b344a0, eflags=0) at src/pgduckdb_hooks.cpp:303
#36 0x000055b60e389c1c in ExecutorStart (queryDesc=queryDesc@entry=0x55b610b344a0, eflags=0) at execMain.c:135
#37 0x000055b60e55c923 in PortalStart (portal=portal@entry=0x55b6108beea0, params=params@entry=0x0, eflags=eflags@entry=0, snapshot=snapshot@entry=0x0) at pquery.c:517
#38 0x000055b60e55955d in exec_simple_query (query_string=query_string@entry=0x55b610832390 "SELECT approx_count_distinct(a), approx_count_distinct(b) FROM t;") at postgres.c:1239
#39 0x000055b60e55b426 in PostgresMain (dbname=<optimized out>, username=<optimized out>) at postgres.c:4767
#40 0x000055b60e554f13 in BackendMain (startup_data=<optimized out>, startup_data_len=<optimized out>) at backend_startup.c:105
#41 0x000055b60e4b6a12 in postmaster_child_launch (child_type=child_type@entry=B_BACKEND, startup_data=startup_data@entry=0x7ffde32a7f0c "",
startup_data_len=startup_data_len@entry=4, client_sock=client_sock@entry=0x7ffde32a7f40) at launch_backend.c:277
#42 0x000055b60e4bae7d in BackendStartup (client_sock=client_sock@entry=0x7ffde32a7f40) at postmaster.c:3594
#43 0x000055b60e4bb0c8 in ServerLoop () at postmaster.c:1676
#44 0x000055b60e4bc725 in PostmasterMain (argc=argc@entry=3, argv=argv@entry=0x55b6107ecb20) at postmaster.c:1374
#45 0x000055b60e3e47d8 in main (argc=3, argv=0x55b6107ecb20) at main.c:199
OS:
debian-12 x86_64
pg_duckdb Version (if built from source use commit hash):
@Y--, by the way, I also get warnings when building
In file included from /tmp/pgsql/include/server/postgres.h:46,
from src/pgduckdb_ddl.cpp:5:
src/pgduckdb_ddl.cpp: In function ‘void CheckOnCommitSupport(OnCommitAction)’:
/tmp/pgsql/include/server/utils/elog.h:150:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
150 | } while(0)
| ^
/tmp/pgsql/include/server/utils/elog.h:164:9: note: in expansion of macro ‘ereport_domain’
164 | ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__)
| ^~~~~~~~~~~~~~
/tmp/pgsql/include/server/utils/elog.h:240:9: note: in expansion of macro ‘ereport’
240 | ereport(elevel, errmsg_internal(__VA_ARGS__))
| ^~~~~~~
src/pgduckdb_ddl.cpp:295:17: note: in expansion of macro ‘elog’
295 | elog(ERROR, "DuckDB does not support ON COMMIT DROP");
| ^~~~
src/pgduckdb_ddl.cpp:296:9: note: here
296 | default:
| ^~~~~~~
What happens?
Server crashes when executing the script below
PostgreSQL build:
To Reproduce
Sometimes you need to reproduce this sql-scripts several time to reproduce segfault.
backtrace:
OS:
debian-12 x86_64
pg_duckdb Version (if built from source use commit hash):
769c256
Postgres Version (if built from source use commit hash):
REL_17_STABLE (f4af4515bb5f3591d49bc16b6cb8ddbf66f98374)
Hardware:
No response
Full Name:
Egor Chindyaskin
Affiliation:
Postgres Professional
What is the latest build you tested with? If possible, we recommend testing with the latest nightly build.
I have tested with a source build
Did you include all relevant data sets for reproducing the issue?
Yes
Did you include all code required to reproduce the issue?
Did you include all relevant configuration (e.g., CPU architecture, Linux distribution) to reproduce the issue?
The text was updated successfully, but these errors were encountered: