Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-40379

DuckDB crashes when creating a temporary duckdb table

    XMLWordPrintable

Details

    • Can result in hang or crash

    Description

      # mariadbd options required for replay: --plugin-maturity=alpha
      INSTALL SONAME 'ha_duckdb';
      CREATE TEMPORARY TABLE t (c INT KEY) ENGINE=DuckDB;
      

      Leads to:

      CS 13.0.2 172609526b93ac278203607274b70e6b6d8e67fd (Debug, Clang 22.1.8-20260622) Build 07/07/2026

      mariadbd: /test/13.0_dbg/storage/duckdb/convertor/ddl_convertor.cc:606: virtual std::string CreateTableConvertor::translate(): Assertion `(m_create_info->options & HA_LEX_CREATE_TMP_TABLE) == 0' failed.
      

      CS 13.0.2 172609526b93ac278203607274b70e6b6d8e67fd (Debug, Clang 22.1.8-20260622) Build 07/07/2026

      Core was generated by `/test/MD070726-mariadb-13.0.2-linux-x86_64-dbg/bin/mariadbd --no-defaults --loo'.
      Program terminated with signal SIGABRT, Aborted.
      #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44
       
      [Current thread is 1 (LWP 620680)]
      (gdb) bt
      #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44
      #1  __pthread_kill_internal (signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:78
      #2  __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6)at ./nptl/pthread_kill.c:89
      #3  0x000077969624526e in __GI_raise (sig=sig@entry=6)at ../sysdeps/posix/raise.c:26
      #4  0x00007796962288ff in __GI_abort () at ./stdlib/abort.c:79
      #5  0x000077969622881b in __assert_fail_base (fmt=0x7796963d01e8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x6f956f4d1315 "(m_create_info->options & HA_LEX_CREATE_TMP_TABLE) == 0", file=file@entry=0x6f956f502d57 "/test/13.0_dbg/storage/duckdb/convertor/ddl_convertor.cc", line=line@entry=606, function=function@entry=0x6f956f4e30be "virtual std::string CreateTableConvertor::translate()") at ./assert/assert.c:94
      #6  0x000077969623b507 in __assert_fail (assertion=0x6f956f4d1315 "(m_create_info->options & HA_LEX_CREATE_TMP_TABLE) == 0", file=0x6f956f502d57 "/test/13.0_dbg/storage/duckdb/convertor/ddl_convertor.cc", line=606, function=0x6f956f4e30be "virtual std::string CreateTableConvertor::translate()") at ./assert/assert.c:103
      #7  0x00006f957074b1fb in CreateTableConvertor::translate[abi:cxx11]() (this=0x7796945f89c8)at /test/13.0_dbg/storage/duckdb/convertor/ddl_convertor.cc:606
      #8  0x00006f95706ce9d2 in ha_duckdb::create (this=0x6f95743382a0, name=0x7796945fb7f0 "/test/MD070726-mariadb-13.0.2-linux-x86_64-dbg/tmp/#sql-temptable-95fc2-4-0", form=0x7796945f8d90, create_info=0x7796945fbf78)at /test/13.0_dbg/storage/duckdb/ha_duckdb.cc:963
      #9  0x000058e0f3264c12 in handler::ha_create (this=0x6f95743382a0, name=0x7796945fb7f0 "/test/MD070726-mariadb-13.0.2-linux-x86_64-dbg/tmp/#sql-temptable-95fc2-4-0", form=0x7796945f8d90, info_arg=0x7796945fbf78)at /test/13.0_dbg/sql/handler.cc:6234
      #10 0x000058e0f3266ab0 in ha_create_table_from_share (thd=0x6f9574000d60, share=0x7796945fa100, create_info=0x7796945fbf78, ref_length=0x7796945f9264) at /test/13.0_dbg/sql/handler.cc:6694
      #11 0x000058e0f32663c5 in ha_create_table (thd=0x6f9574000d60, path=0x7796945fb7f0 "/test/MD070726-mariadb-13.0.2-linux-x86_64-dbg/tmp/#sql-temptable-95fc2-4-0", db=0x6f957401a510 "test", table_name=0x6f957401a4d0 "t", create_info=0x7796945fbf78, frm=0x7796945fb780, skip_frm_file=false)at /test/13.0_dbg/sql/handler.cc:6768
      #12 0x000058e0f3813478 in create_table_impl (thd=0x6f9574000d60, ddl_log_state_create=0x0, ddl_log_state_rm=0x0, orig_db=@0x6f957401a550: {<Lex_ident_fs> = {<Lex_ident<Compare_table_names>> = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x6f957401a510 "test", length = 4}, <No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, orig_table_name=@0x6f957401a560: {<Lex_ident_fs> = {<Lex_ident<Compare_table_names>> = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x6f957401a4d0 "t", length = 1}, <No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, db=@0x6f957401a550: {str = 0x6f957401a510 "test", length = 4}, table_name=@0x6f957401a560: {str = 0x6f957401a4d0 "t", length = 1}, path=@0x7796945fb768: {str = 0x7796945fb7f0 "/test/MD070726-mariadb-13.0.2-linux-x86_64-dbg/tmp/#sql-temptable-95fc2-4-0", length = 75}, options={m_options = DDL_options_st::OPT_NONE}, create_info=0x7796945fbf78, alter_info=0x7796945fbe00, create_table_mode=0, is_trans=0x7796945fbb2f, key_info=0x7796945fb7b0, key_count=0x7796945fb7ac, frm=0x7796945fb780)at /test/13.0_dbg/sql/sql_table.cc:4938
      #13 0x000058e0f3812615 in mysql_create_table_no_lock (thd=0x6f9574000d60, ddl_log_state_create=0x7796945fbb58, ddl_log_state_rm=0x7796945fbb38, create_info=0x7796945fbf78, alter_info=0x7796945fbe00, is_trans=0x7796945fbb2f, create_table_mode=0, table_list=0x6f957401a530)at /test/13.0_dbg/sql/sql_table.cc:5039
      #14 0x000058e0f382c4ed in mysql_create_table (thd=0x6f9574000d60, create_table=0x6f957401a530, create_info=0x7796945fbf78, alter_info=0x7796945fbe00) at /test/13.0_dbg/sql/sql_table.cc:5285
      #15 0x000058e0f382acbe in Sql_cmd_create_table_like::execute (this=0x6f957401a490, thd=0x6f9574000d60)at /test/13.0_dbg/sql/sql_table.cc:13874
      #16 0x000058e0f36efd76 in mysql_execute_command (thd=0x6f9574000d60, is_called_from_prepared_stmt=false) at /test/13.0_dbg/sql/sql_parse.cc:5905
      #17 0x000058e0f36e0e88 in mysql_parse (thd=0x6f9574000d60, rawbuf=0x6f957401a3c0 "CREATE TEMPORARY TABLE t (c INT KEY) ENGINE=DuckDB", length=50, parser_state=0x7796945fd9f0) at /test/13.0_dbg/sql/sql_parse.cc:7945
      #18 0x000058e0f36de5de in dispatch_command (command=COM_QUERY, thd=0x6f9574000d60, packet=0x6f957400b5f1 "CREATE TEMPORARY TABLE t (c INT KEY) ENGINE=DuckDB", packet_length=50, blocking=true) at /test/13.0_dbg/sql/sql_parse.cc:1903
      #19 0x000058e0f36e190a in do_command (thd=0x6f9574000d60, blocking=true)at /test/13.0_dbg/sql/sql_parse.cc:1437
      #20 0x000058e0f38e60be in do_handle_one_connection (connect=0x58e0f63e7b70, put_in_cache=true) at /test/13.0_dbg/sql/sql_connect.cc:1510
      #21 0x000058e0f38e5ea1 in handle_one_connection (arg=0x58e0f63c64d0)at /test/13.0_dbg/sql/sql_connect.cc:1422
      #22 0x000077969629ca94 in start_thread (arg=<optimized out>)at ./nptl/pthread_create.c:447
      #23 0x0000779696329c3c in clone3 ()at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
      

      Bug Detection Matrix

          Rel    o/d  Build   Commit                                    UniqueID observed             
      CS  10.6   dbg  100426  f39b634db715cd9dc1835653d1ce544df2aa1613  No bug found                  
      CS  10.6   opt  100426  f39b634db715cd9dc1835653d1ce544df2aa1613  No bug found                  
      CS  10.11  dbg  100426  ba774a0a90fac0163babe9d7a964aa36503e1711  No bug found                  
      CS  10.11  opt  100426  ba774a0a90fac0163babe9d7a964aa36503e1711  No bug found                  
      CS  11.4   dbg  100426  dc89915ad9bf3dcb67e66d2844c77ec0403373de  No bug found                  
      CS  11.4   opt  100426  dc89915ad9bf3dcb67e66d2844c77ec0403373de  No bug found                  
      CS  11.8   dbg  100426  e47db94aea7f0d6e0177e948486fc8860331f05f  No bug found                  
      CS  11.8   opt  100426  e47db94aea7f0d6e0177e948486fc8860331f05f  No bug found                  
      CS  12.3   dbg  100426  f5bb9922107672e88f7b5cbdb3d25151cc5744bb  No bug found                  
      CS  12.3   opt  100426  f5bb9922107672e88f7b5cbdb3d25151cc5744bb  No bug found                  
      CS  13.0   dbg  070726  172609526b93ac278203607274b70e6b6d8e67fd  (m_create_info->options & HA_LEX_CREATE_TMP_TABLE) == 0|SIGABRT|CreateTableConvertor::translate[abi:cxx11]ddl_convertor.cc|ha_duckdb::create|handler::ha_create|ha_create_table_from_share
      CS  13.0   opt  070726  172609526b93ac278203607274b70e6b6d8e67fd  No bug found                  
      CS  13.1   dbg  070726  fd8cec54af7a9d79749df25ea70dac695b371641  (m_create_info->options & HA_LEX_CREATE_TMP_TABLE) == 0|SIGABRT|CreateTableConvertor::translate[abi:cxx11]ddl_convertor.cc|ha_duckdb::create|handler::ha_create|ha_create_table_from_share
      CS  13.1   opt  070726  fd8cec54af7a9d79749df25ea70dac695b371641  No bug found                  
      ES  10.6   dbg  100426  84a80c8b38208d362225496da08d86d8d454e453  No bug found                  
      ES  10.6   opt  100426  84a80c8b38208d362225496da08d86d8d454e453  No bug found                  
      ES  11.4   dbg  100426  8b2bf17b733262409422ce7d039a0c021fc47077  No bug found                  
      ES  11.4   opt  100426  8b2bf17b733262409422ce7d039a0c021fc47077  No bug found                  
      ES  11.8   dbg  100426  854cae81f52e477c7777a51db26ba640d8755b81  No bug found                  
      ES  11.8   opt  100426  854cae81f52e477c7777a51db26ba640d8755b81  No bug found                  
      ES  12.3   dbg  220426  613a6253fe9efc12e166f83a97663ba263db8317  No bug found                  
      ES  12.3   opt  220426  613a6253fe9efc12e166f83a97663ba263db8317  No bug found                  
      ES  12.3   opt  220626  b9a20e2626ae8c9bd1a0e8237e14a38e8ab306e7  No bug found                             
      

      The testcase is CLI and MTR compatible (the maturity option is not needed in MTR)

      Attachments

        Issue Links

          Activity

            People

              drrtuy Roman
              Roel Roel Van de Paar
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - Not Specified
                  Not Specified
                  Logged:
                  Time Spent - 40m
                  40m

                  Git Integration

                    Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.