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

Assertion `! thd->in_sub_stmt' failed in bool trans_rollback_stmt(THD*)

    XMLWordPrintable

Details

    Description

      SET sql_mode="no_zero_date";
      SET GLOBAL wsrep_max_ws_rows=1;
      CREATE TABLE t2 (a INT);
      CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY) ENGINE=InnoDB;
      CREATE TRIGGER tgr BEFORE INSERT ON t1 FOR EACH ROW INSERT INTO t2 VALUES (0);
      CREATE TABLE ti (id BIGINT NOT NULL PRIMARY KEY) ENGINE=InnoDB;
      INSERT INTO ti VALUES (1);
      INSERT INTO t1 VALUES (0),(1);
      

      Leads to:

      10.6.4 a8410693dccf206ca58089c72449cc78d03dd612 (Debug)

      mysqld: /test/10.6_dbg/sql/transaction.cc:529: bool trans_rollback_stmt(THD*): Assertion `! thd->in_sub_stmt' failed.
      

      10.6.4 a8410693dccf206ca58089c72449cc78d03dd612 (Debug)

      Core was generated by `/test/GAL_MD120721-mariadb-10.6.4-linux-x86_64-dbg/bin/mysqld --defaults-file=/'.
      Program terminated with signal SIGABRT, Aborted.
      #0  __pthread_kill (threadid=<optimized out>, signo=signo@entry=6)
          at ../sysdeps/unix/sysv/linux/pthread_kill.c:56
      [Current thread is 1 (Thread 0x1470bc5dc700 (LWP 3345316))]
      (gdb) bt
      #0  __pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ../sysdeps/unix/sysv/linux/pthread_kill.c:56
      #1  0x00005619514e6c97 in my_write_core (sig=sig@entry=6) at /test/10.6_dbg/mysys/stacktrace.c:424
      #2  0x0000561950c9a616 in handle_fatal_signal (sig=6) at /test/10.6_dbg/sql/signal_handler.cc:344
      #3  <signal handler called>
      #4  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
      #5  0x00001470cd7cd859 in __GI_abort () at abort.c:79
      #6  0x00001470cd7cd729 in __assert_fail_base (fmt=0x1470cd963588 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x56195166bfc6 "! thd->in_sub_stmt", file=0x561951698578 "/test/10.6_dbg/sql/transaction.cc", line=529, function=<optimized out>) at assert.c:92
      #7  0x00001470cd7def36 in __GI___assert_fail (assertion=assertion@entry=0x56195166bfc6 "! thd->in_sub_stmt", file=file@entry=0x561951698578 "/test/10.6_dbg/sql/transaction.cc", line=line@entry=529, function=function@entry=0x561951698a98 "bool trans_rollback_stmt(THD*)") at assert.c:101
      #8  0x0000561950b2fcf2 in trans_rollback_stmt (thd=thd@entry=0x147054000db8) at /test/10.6_dbg/sql/transaction.cc:529
      #9  0x0000561950c9dcae in wsrep_after_row (thd=0x147054000db8) at /test/10.6_dbg/sql/handler.cc:7112
      #10 0x0000561950caf0e9 in handler::ha_write_row (this=0x1470540bf7b0, buf=0x1470540bf348 <incomplete sequence \375>) at /test/10.6_dbg/sql/handler.cc:7510
      #11 0x0000561950964ac8 in write_record (thd=thd@entry=0x147054000db8, table=table@entry=0x1470540beeb8, info=info@entry=0x1470bc5d97a0, sink=sink@entry=0x0) at /test/10.6_dbg/sql/sql_insert.cc:2113
      #12 0x00005619509706ad in mysql_insert (thd=thd@entry=0x147054000db8, table_list=0x1470540b4a50, fields=@0x1470540b6d90: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x561951fbe980 <end_of_list>, last = 0x1470540b6d90, elements = 0}, <No data fields>}, values_list=@0x1470540b6dd8: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x1470540b5650, last = 0x1470540b5650, elements = 1}, <No data fields>}, update_fields=@0x1470540b6dc0: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x561951fbe980 <end_of_list>, last = 0x1470540b6dc0, elements = 0}, <No data fields>}, update_values=@0x1470540b6da8: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x561951fbe980 <end_of_list>, last = 0x1470540b6da8, elements = 0}, <No data fields>}, duplic=DUP_ERROR, ignore=false, result=0x0) at /test/10.6_dbg/sql/sql_insert.cc:1104
      #13 0x00005619509b69b2 in mysql_execute_command (thd=0x147054000db8, is_called_from_prepared_stmt=is_called_from_prepared_stmt@entry=false) at /test/10.6_dbg/sql/sql_parse.cc:4566
      #14 0x00005619508d2908 in sp_instr_stmt::exec_core (this=0x1470540b56c8, thd=<optimized out>, nextp=0x1470bc5da34c) at /test/10.6_dbg/sql/sp_head.cc:3772
      #15 0x00005619508e0c6f in sp_lex_keeper::reset_lex_and_exec_core (this=this@entry=0x1470540b5710, thd=thd@entry=0x147054000db8, nextp=nextp@entry=0x1470bc5da34c, open_tables=open_tables@entry=false, instr=instr@entry=0x1470540b56c8) at /test/10.6_dbg/sql/sp_head.cc:3499
      #16 0x00005619508e17e2 in sp_instr_stmt::execute (this=0x1470540b56c8, thd=0x147054000db8, nextp=0x1470bc5da34c) at /test/10.6_dbg/sql/sp_head.cc:3678
      #17 0x00005619508d93e0 in sp_head::execute (this=this@entry=0x1470540b3b30, thd=thd@entry=0x147054000db8, merge_da_on_success=merge_da_on_success@entry=false) at /test/10.6_dbg/sql/sp_head.cc:1437
      #18 0x00005619508da7be in sp_head::execute_trigger (this=0x1470540b3b30, thd=thd@entry=0x147054000db8, db_name=0x1470540adb10, table_name=<optimized out>, grant_info=grant_info@entry=0x1470540b3810) at /test/10.6_dbg/sql/sp_head.cc:1918
      #19 0x0000561950a9a760 in Table_triggers_list::process_triggers (this=this@entry=0x1470540b3250, thd=thd@entry=0x147054000db8, event=event@entry=TRG_EVENT_INSERT, time_type=time_type@entry=TRG_ACTION_BEFORE, old_row_is_record1=old_row_is_record1@entry=true) at /test/10.6_dbg/sql/sql_trigger.cc:2453
      #20 0x000056195092acc1 in fill_record_n_invoke_before_triggers (thd=thd@entry=0x147054000db8, table=table@entry=0x1470540b0038, ptr=0x1470540b3888, values=@0x147054014ca8: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x147054014d40, last = 0x147054014d40, elements = 1}, <No data fields>}, ignore_errors=ignore_errors@entry=false, event=event@entry=TRG_EVENT_INSERT) at /test/10.6_dbg/sql/sql_base.cc:8892
      #21 0x000056195096fb05 in mysql_insert (thd=thd@entry=0x147054000db8, table_list=0x147054014090, fields=@0x147054005fd8: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x561951fbe980 <end_of_list>, last = 0x147054005fd8, elements = 0}, <No data fields>}, values_list=@0x147054006020: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x147054014c98, last = 0x147054014d50, elements = 2}, <No data fields>}, update_fields=@0x147054006008: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x561951fbe980 <end_of_list>, last = 0x147054006008, elements = 0}, <No data fields>}, update_values=@0x147054005ff0: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x561951fbe980 <end_of_list>, last = 0x147054005ff0, elements = 0}, <No data fields>}, duplic=DUP_ERROR, ignore=false, result=0x0) at /test/10.6_dbg/sql/sql_insert.cc:1047
      #22 0x00005619509b69b2 in mysql_execute_command (thd=thd@entry=0x147054000db8, is_called_from_prepared_stmt=is_called_from_prepared_stmt@entry=false) at /test/10.6_dbg/sql/sql_parse.cc:4566
      #23 0x00005619509a1591 in mysql_parse (thd=thd@entry=0x147054000db8, rawbuf=rawbuf@entry=0x147054013fb0 "INSERT INTO t1 VALUES (0),(1)", length=length@entry=29, parser_state=parser_state@entry=0x1470bc5db400) at /test/10.6_dbg/sql/sql_parse.cc:8026
      #24 0x00005619509a0f25 in wsrep_mysql_parse (thd=thd@entry=0x147054000db8, rawbuf=0x147054013fb0 "INSERT INTO t1 VALUES (0),(1)", length=29, parser_state=parser_state@entry=0x1470bc5db400) at /test/10.6_dbg/sql/sql_parse.cc:7840
      #25 0x00005619509b01dd in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x147054000db8, packet=packet@entry=0x14705400b769 "INSERT INTO t1 VALUES (0),(1)", packet_length=packet_length@entry=29, blocking=blocking@entry=true) at /test/10.6_dbg/sql/sql_class.h:1340
      #26 0x00005619509b35e7 in do_command (thd=0x147054000db8, blocking=blocking@entry=true) at /test/10.6_dbg/sql/sql_parse.cc:1404
      #27 0x0000561950b1914f in do_handle_one_connection (connect=<optimized out>, connect@entry=0x56195473beb8, put_in_cache=put_in_cache@entry=true) at /test/10.6_dbg/sql/sql_connect.cc:1410
      #28 0x0000561950b19757 in handle_one_connection (arg=arg@entry=0x56195473beb8) at /test/10.6_dbg/sql/sql_connect.cc:1312
      #29 0x0000561950fcb1e5 in pfs_spawn_thread (arg=0x5619547b3948) at /test/10.6_dbg/storage/perfschema/pfs.cc:2201
      #30 0x00001470cdcdb609 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #31 0x00001470cd8ca293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
      

      10.3.30 1447b39475d2900066e0d058cee9b3fa6aec5016 (Debug)

      mysqld: /test/10.3_dbg/sql/transaction.cc:560: bool trans_rollback_stmt(THD*): Assertion `! thd->in_sub_stmt' failed.
      

      10.3.30 1447b39475d2900066e0d058cee9b3fa6aec5016 (Debug)

      Core was generated by `/test/GAL_MD120521-mariadb-10.3.30-linux-x86_64-dbg/bin/mysqld --defaults-file='.
      Program terminated with signal SIGABRT, Aborted.
      #0  __pthread_kill (threadid=<optimized out>, signo=signo@entry=6)
          at ../sysdeps/unix/sysv/linux/pthread_kill.c:56
      [Current thread is 1 (Thread 0x14eab0123700 (LWP 3353446))]
      (gdb) bt
      #0  __pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ../sysdeps/unix/sysv/linux/pthread_kill.c:56
      #1  0x0000556e6948583a in my_write_core (sig=sig@entry=6) at /test/10.3_dbg/mysys/stacktrace.c:386
      #2  0x0000556e68c381fa in handle_fatal_signal (sig=6) at /test/10.3_dbg/sql/signal_handler.cc:355
      #3  <signal handler called>
      #4  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
      #5  0x000014eaf0f69859 in __GI_abort () at abort.c:79
      #6  0x000014eaf0f69729 in __assert_fail_base (fmt=0x14eaf10ff588 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x556e6952d8f5 "! thd->in_sub_stmt", file=0x556e69557340 "/test/10.3_dbg/sql/transaction.cc", line=560, function=<optimized out>) at assert.c:92
      #7  0x000014eaf0f7af36 in __GI___assert_fail (assertion=assertion@entry=0x556e6952d8f5 "! thd->in_sub_stmt", file=file@entry=0x556e69557340 "/test/10.3_dbg/sql/transaction.cc", line=line@entry=560, function=function@entry=0x556e69557640 "bool trans_rollback_stmt(THD*)") at assert.c:101
      #8  0x0000556e68af1116 in trans_rollback_stmt (thd=thd@entry=0x14ea70000d90) at /test/10.3_dbg/sql/transaction.cc:560
      #9  0x0000556e68c49366 in binlog_log_row (table=0x14ea703306d0, before_record=before_record@entry=0x0, after_record=after_record@entry=0x14ea70331320 <incomplete sequence \375>, log_func=log_func@entry=0x556e68c4d6c3 <Write_rows_log_event::binlog_row_logging_function(THD*, TABLE*, bool, unsigned char const*, unsigned char const*)>) at /test/10.3_dbg/sql/handler.cc:6348
      #10 0x0000556e68c49cec in handler::ha_write_row (this=0x14ea70331778, buf=0x14ea70331320 <incomplete sequence \375>) at /test/10.3_dbg/sql/handler.cc:6485
      #11 0x0000556e6896d578 in write_record (thd=thd@entry=0x14ea70000d90, table=table@entry=0x14ea703306d0, info=info@entry=0x14eab011e5a0) at /test/10.3_dbg/sql/sql_insert.cc:2039
      #12 0x0000556e6897938b in mysql_insert (thd=thd@entry=0x14ea70000d90, table_list=0x14ea703285b8, fields=@0x14ea7032a790: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x556e69d82f40 <end_of_list>, last = 0x14ea7032a790, elements = 0}, <No data fields>}, values_list=@0x14ea7032a7d8: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x14ea70328cd0, last = 0x14ea70328cd0, elements = 1}, <No data fields>}, update_fields=@0x14ea7032a7c0: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x556e69d82f40 <end_of_list>, last = 0x14ea7032a7c0, elements = 0}, <No data fields>}, update_values=@0x14ea7032a7a8: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x556e69d82f40 <end_of_list>, last = 0x14ea7032a7a8, elements = 0}, <No data fields>}, duplic=DUP_ERROR, ignore=false) at /test/10.3_dbg/sql/sql_insert.cc:1072
      #13 0x0000556e689aac0d in mysql_execute_command (thd=0x14ea70000d90) at /test/10.3_dbg/sql/sql_parse.cc:4507
      #14 0x0000556e688e4613 in sp_instr_stmt::exec_core (this=0x14ea70328ce0, thd=<optimized out>, nextp=0x14eab012031c) at /test/10.3_dbg/sql/sp_head.cc:3702
      #15 0x0000556e688f017c in sp_lex_keeper::reset_lex_and_exec_core (this=this@entry=0x14ea70328d28, thd=thd@entry=0x14ea70000d90, nextp=nextp@entry=0x14eab012031c, open_tables=open_tables@entry=false, instr=instr@entry=0x14ea70328ce0) at /test/10.3_dbg/sql/sp_head.cc:3434
      #16 0x0000556e688f0cdb in sp_instr_stmt::execute (this=0x14ea70328ce0, thd=0x14ea70000d90, nextp=0x14eab012031c) at /test/10.3_dbg/sql/sp_head.cc:3608
      #17 0x0000556e688e915a in sp_head::execute (this=this@entry=0x14ea70327868, thd=thd@entry=0x14ea70000d90, merge_da_on_success=merge_da_on_success@entry=false) at /test/10.3_dbg/sql/sp_head.cc:1377
      #18 0x0000556e688ea2ac in sp_head::execute_trigger (this=0x14ea70327868, thd=thd@entry=0x14ea70000d90, db_name=0x14ea70321300, table_name=0x14ea70321310, grant_info=grant_info@entry=0x14ea70327518) at /test/10.3_dbg/sql/sp_head.cc:1873
      #19 0x0000556e68a761d2 in Table_triggers_list::process_triggers (this=this@entry=0x14ea70326fa8, thd=thd@entry=0x14ea70000d90, event=event@entry=TRG_EVENT_INSERT, time_type=time_type@entry=TRG_ACTION_BEFORE, old_row_is_record1=old_row_is_record1@entry=true) at /test/10.3_dbg/sql/sql_trigger.cc:2221
      #20 0x0000556e68935d7a in fill_record_n_invoke_before_triggers (thd=thd@entry=0x14ea70000d90, table=table@entry=0x14ea70323690, ptr=0x14ea70327590, values=@0x14ea70011d88: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x14ea70011e38, last = 0x14ea70011e38, elements = 1}, <No data fields>}, ignore_errors=ignore_errors@entry=false, event=event@entry=TRG_EVENT_INSERT) at /test/10.3_dbg/sql/sql_base.cc:8744
      #21 0x0000556e6897873a in mysql_insert (thd=thd@entry=0x14ea70000d90, table_list=0x14ea70011658, fields=@0x14ea70005a20: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x556e69d82f40 <end_of_list>, last = 0x14ea70005a20, elements = 0}, <No data fields>}, values_list=@0x14ea70005a68: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x14ea70011d78, last = 0x14ea70011e48, elements = 2}, <No data fields>}, update_fields=@0x14ea70005a50: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x556e69d82f40 <end_of_list>, last = 0x14ea70005a50, elements = 0}, <No data fields>}, update_values=@0x14ea70005a38: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x556e69d82f40 <end_of_list>, last = 0x14ea70005a38, elements = 0}, <No data fields>}, duplic=DUP_ERROR, ignore=false) at /test/10.3_dbg/sql/sql_insert.cc:1014
      #22 0x0000556e689aac0d in mysql_execute_command (thd=thd@entry=0x14ea70000d90) at /test/10.3_dbg/sql/sql_parse.cc:4507
      #23 0x0000556e689b1eb5 in mysql_parse (thd=thd@entry=0x14ea70000d90, rawbuf=rawbuf@entry=0x14ea70011578 "INSERT INTO t1 VALUES (0),(1)", length=length@entry=29, parser_state=parser_state@entry=0x14eab0122540, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /test/10.3_dbg/sql/sql_parse.cc:7873
      #24 0x0000556e689b3574 in wsrep_mysql_parse (thd=thd@entry=0x14ea70000d90, rawbuf=0x14ea70011578 "INSERT INTO t1 VALUES (0),(1)", length=29, parser_state=parser_state@entry=0x14eab0122540, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /test/10.3_dbg/sql/sql_parse.cc:7665
      #25 0x0000556e689b468f in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x14ea70000d90, packet=packet@entry=0x14ea700198f1 "INSERT INTO t1 VALUES (0),(1)", packet_length=packet_length@entry=29, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /test/10.3_dbg/sql/sql_class.h:1152
      #26 0x0000556e689b781a in do_command (thd=0x14ea70000d90) at /test/10.3_dbg/sql/sql_parse.cc:1398
      #27 0x0000556e68adfb80 in do_handle_one_connection (connect=connect@entry=0x556e6c132780) at /test/10.3_dbg/sql/sql_connect.cc:1403
      #28 0x0000556e68adfdb7 in handle_one_connection (arg=0x556e6c132780) at /test/10.3_dbg/sql/sql_connect.cc:1308
      #29 0x000014eaf113f609 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #30 0x000014eaf1066293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
      

      Bug confirmed present in:
      MariaDB: 10.2.39 (dbg), 10.3.30 (dbg), 10.4.20 (dbg), 10.5.11 (dbg), 10.6.4 (dbg)

      Bug (or feature/syntax) confirmed not present in:
      MariaDB: 10.2.39 (opt), 10.3.30 (opt), 10.4.20 (opt), 10.5.11 (opt), 10.6.4 (opt)

      Attachments

        Activity

          People

            sysprg Julius Goryavsky
            ramesh Ramesh Sivaraman
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Git Integration

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