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

Assertion `table->default_field != dfield_ptr' failed in bool parse_vcol_defs(THD *, MEM_ROOT *, TABLE *, bool *, vcol_init_mode)

    XMLWordPrintable

Details

    • Can result in hang or crash

    Description

      CREATE TABLE t (a TIMESTAMP ON UPDATE CURRENT_TIMESTAMP()) ENGINE=MYISAM;
      INSERT DELAYED INTO t VALUES ();
      

      Leads to:

      CS 12.3.0 5bcc115d773caac07d4afd42252e08f3905452b0 (Debug, Clang 18.1.3-11) Build 28/01/2026

      mariadbd: /test/12.2_dbg/sql/table.cc:1405: bool parse_vcol_defs(THD *, MEM_ROOT *, TABLE *, bool *, vcol_init_mode): Assertion `table->default_field != dfield_ptr' failed.
      

      CS 12.3.0 5bcc115d773caac07d4afd42252e08f3905452b0 (Debug, Clang 18.1.3-11) Build 28/01/2026

      Core was generated by `/test/MD280126-mariadb-12.3.0-linux-x86_64-dbg/bin/mariadbd --no-defaults --max'.
      Program terminated with signal SIGABRT, Aborted.
      Download failed: Invalid argument.  Continuing without source file ./nptl/./nptl/pthread_kill.c.
      #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44
       
      [Current thread is 1 (LWP 1785774)]
      (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  0x000075309624527e in __GI_raise (sig=sig@entry=6)at ../sysdeps/posix/raise.c:26
      #4  0x00007530962288ff in __GI_abort () at ./stdlib/abort.c:79
      #5  0x000075309622881b in __assert_fail_base (fmt=0x7530963d01e8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x55cd786186fa "table->default_field != dfield_ptr", file=file@entry=0x55cd786184ba "/test/12.2_dbg/sql/table.cc", line=line@entry=1405, function=function@entry=0x55cd7861868e "bool parse_vcol_defs(THD *, MEM_ROOT *, TABLE *, bool *, vcol_init_mode)") at ./assert/assert.c:96
      #6  0x000075309623b517 in __assert_fail (assertion=0x55cd786186fa "table->default_field != dfield_ptr", file=0x55cd786184ba "/test/12.2_dbg/sql/table.cc", line=1405, function=0x55cd7861868e "bool parse_vcol_defs(THD *, MEM_ROOT *, TABLE *, bool *, vcol_init_mode)") at ./assert/assert.c:105
      #7  0x000055cd77686d6b in parse_vcol_defs (thd=0x7511b0000d58, mem_root=0x7511b0006e70, table=0x7511b001b6b0, error_reported=0x75308c0966bf, mode=VCOL_INIT_DEPENDENCY_FAILURE_IS_WARNING)at /test/12.2_dbg/sql/table.cc:1405
      #8  0x000055cd7749c2ce in Delayed_insert::get_local_table (this=0x7511b002d1c8, client_thd=0x7511b0000d58)at /test/12.2_dbg/sql/sql_insert.cc:3155
      #9  0x000055cd774a47b5 in delayed_get_table (thd=0x7511b0000d58, grl_protection_request=0x75308c096858, table_list=0x7511b0019fc8)at /test/12.2_dbg/sql/sql_insert.cc:2961
      #10 0x000055cd77498175 in open_and_lock_for_insert_delayed (thd=0x7511b0000d58, table_list=0x7511b0019fc8)at /test/12.2_dbg/sql/sql_insert.cc:601
      #11 0x000055cd77494f7b in mysql_insert (thd=0x7511b0000d58, table_list=0x7511b0019fc8, fields=@0x7511b0006110: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x55cd7928eb20 <end_of_list>, last = 0x7511b0006110, elements = 0}, <No data fields>}, values_list=@0x7511b0006158: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x7511b001abf8, last = 0x7511b001abf8, elements = 1}, <No data fields>}, update_fields=@0x7511b0006140: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x55cd7928eb20 <end_of_list>, last = 0x7511b0006140, elements = 0}, <No data fields>}, update_values=@0x7511b0006128: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x55cd7928eb20 <end_of_list>, last = 0x7511b0006128, elements = 0}, <No data fields>}, duplic=DUP_ERROR, ignore=false, result=0x0)at /test/12.2_dbg/sql/sql_insert.cc:808
      #12 0x000055cd77500618 in mysql_execute_command (thd=0x7511b0000d58, is_called_from_prepared_stmt=false) at /test/12.2_dbg/sql/sql_parse.cc:4478
      #13 0x000055cd774f63b4 in mysql_parse (thd=0x7511b0000d58, rawbuf=0x7511b0019ee0 "INSERT DELAYED INTO t VALUES ()", length=31, parser_state=0x75308c098a00) at /test/12.2_dbg/sql/sql_parse.cc:7945
      #14 0x000055cd774f376d in dispatch_command (command=COM_QUERY, thd=0x7511b0000d58, packet=0x7511b000b239 "INSERT DELAYED INTO t VALUES ()", packet_length=31, blocking=true) at /test/12.2_dbg/sql/sql_parse.cc:1896
      #15 0x000055cd774f6f63 in do_command (thd=0x7511b0000d58, blocking=true)at /test/12.2_dbg/sql/sql_parse.cc:1432
      #16 0x000055cd776eaaa9 in do_handle_one_connection (connect=0x55cdb8d37c08, put_in_cache=true) at /test/12.2_dbg/sql/sql_connect.cc:1503
      #17 0x000055cd776ea84e in handle_one_connection (arg=0x55cdb8c743c8)at /test/12.2_dbg/sql/sql_connect.cc:1415
      #18 0x000075309629caa4 in start_thread (arg=<optimized out>)at ./nptl/pthread_create.c:447
      #19 0x0000753096329c6c 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  290126  bf686bb987766bce4ca842d12178d0c08710cab8  No bug found                  
      CS  10.6   opt  290126  bf686bb987766bce4ca842d12178d0c08710cab8  No bug found                  
      CS  10.11  dbg  290126  b29d3779e42f1cf65b1bbe84876767122dcc76c8  No bug found                  
      CS  10.11  opt  290126  b29d3779e42f1cf65b1bbe84876767122dcc76c8  No bug found                  
      CS  11.4   dbg  290126  ca39e66060d4735f91fd46d9784b4c91ed6746aa  No bug found                  
      CS  11.4   opt  290126  ca39e66060d4735f91fd46d9784b4c91ed6746aa  No bug found                  
      CS  11.8   dbg  280126  8a0f327675e9b4a1e0ae2e3a97fe001122a9db03  No bug found                  
      CS  11.8   opt  280126  8a0f327675e9b4a1e0ae2e3a97fe001122a9db03  No bug found                  
      CS  12.2   dbg  290126  de72d02bffe6639ef0b7911966a3f85e3eba052f  No bug found                  
      CS  12.2   opt  290126  de72d02bffe6639ef0b7911966a3f85e3eba052f  No bug found                  
      CS  12.3   dbg  290126  5bcc115d773caac07d4afd42252e08f3905452b0  table->default_field != dfield_ptr|SIGABRT|parse_vcol_defs|Delayed_insert::get_local_table|delayed_get_table|open_and_lock_for_insert_delayed
      CS  12.3   opt  290126  5bcc115d773caac07d4afd42252e08f3905452b0  No bug found                  
      ES  10.5   dbg  040825  70586522eacf09d04d49962072e14325a75d8155  No bug found                  
      ES  10.5   opt  040825  70586522eacf09d04d49962072e14325a75d8155  No bug found                  
      ES  10.6   dbg  040825  9b794f34b48fb7eee490b6da44edc0f33a947447  No bug found                  
      ES  10.6   opt  040825  9b794f34b48fb7eee490b6da44edc0f33a947447  No bug found                  
      ES  11.4   dbg  040825  a1c03ccd54b582e75506687ee19b273ca897f261  No bug found                  
      ES  11.4   opt  040825  a1c03ccd54b582e75506687ee19b273ca897f261  No bug found                  
      ES  11.8   dbg  151025  780565c207e9ce0ebf7d8e3d59f223801447b619  No bug found                  
      ES  11.8   opt  151025  780565c207e9ce0ebf7d8e3d59f223801447b619  No bug found                  
      

      The assertion is visible after this commit

      commit be237b3b0e30dbc2ec91246b7c5ed476e7bc0583 (HEAD)
      Author: Monty <monty@mariadb.org>
      Date:   Sat May 10 14:07:28 2025 +0300
       
          MDEV-36290: Improved support of replication between tables of different structure
          
          One can have data loss in multi-master setups when 1) both masters
          update the same table, 2) ALTER TABLE is run on one master which
          re-arranges the column ordering, and 3) transactions are binlogged
          in ROW binlog_format.
          
          This is because the slave assumes that all columns are in the same
          order on the master and slave and all columns on the master also
          exists on the slave. This happens even if binlog_row_metadata=FULL is
          used.  If this is not the case, this will lead to silent data loss.
      [..]
      

      Attachments

        Issue Links

          Activity

            People

              bnestere Brandon Nesterenko
              ramesh Ramesh Sivaraman
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:

                Git Integration

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