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

Assertion `0' failed in wsrep::transaction::before_rollback

Details

    Description

      Note: Place the test case under suite/galera/t to avoid manual configuration.

      --source include/galera_cluster.inc
      --source include/have_innodb.inc
      --source include/have_log_bin.inc
       
      CREATE SEQUENCE s ENGINE=InnoDB;
      CREATE TABLE t1 (a INT) ENGINE=InnoDB;
      START TRANSACTION;
      REPLACE INTO s VALUES (1,1,9223372036854775806,1,1,1000,0,0);
      OPTIMIZE TABLE t1;
      

      10.4 ba679ae5

      mysqld: /data/src/10.4/wsrep-lib/src/transaction.cpp:700: int wsrep::transaction::before_rollback(): Assertion `0' failed.
      200327 21:49:27 [ERROR] mysqld got signal 6 ;
       
      #7  0x00007fc4f4824f12 in __GI___assert_fail (assertion=0x55b88462f21f "0", file=0x55b88462f190 "/data/src/10.4/wsrep-lib/src/transaction.cpp", line=700, function=0x55b884630c80 <wsrep::transaction::before_rollback()::__PRETTY_FUNCTION__> "int wsrep::transaction::before_rollback()") at assert.c:101
      #8  0x000055b8840bd4c5 in wsrep::transaction::before_rollback (this=0x7fc474006cf0) at /data/src/10.4/wsrep-lib/src/transaction.cpp:700
      #9  0x000055b88337aa81 in wsrep::client_state::before_rollback (this=0x7fc474006c88) at /data/src/10.4/wsrep-lib/include/wsrep/client_state.hpp:496
      #10 0x000055b88376b510 in wsrep_before_rollback (thd=0x7fc474000af0, all=false) at /data/src/10.4/sql/wsrep_trans_observer.h:364
      #11 0x000055b88376ff2c in ha_rollback_trans (thd=0x7fc474000af0, all=false) at /data/src/10.4/sql/handler.cc:1873
      #12 0x000055b8835a81a1 in trans_rollback_stmt (thd=0x7fc474000af0) at /data/src/10.4/sql/transaction.cc:495
      #13 0x000055b8835a1a3e in admin_recreate_table (thd=0x7fc474000af0, table_list=0x7fc474012028) at /data/src/10.4/sql/sql_admin.cc:43
      #14 0x000055b8835a4ee5 in mysql_admin_table(THD *, TABLE_LIST *, HA_CHECK_OPT *, const char *, thr_lock_type, bool, bool, uint, int (*)(THD *, TABLE_LIST *, HA_CHECK_OPT *), struct {...}, int (*)(THD *, TABLE_LIST *, HA_CHECK_OPT *)) (thd=0x7fc474000af0, tables=0x7fc474012028, check_opt=0x7fc474005cc8, operator_name=0x55b884154d18 "optimize", lock_type=TL_WRITE, org_open_for_modify=true, repair_table_use_frm=false, extra_open_options=0, prepare_func=0x0, operator_func=(int (handler::*)(handler * const, THD *, HA_CHECK_OPT *)) 0x55b88377886a <handler::ha_optimize(THD*, st_ha_check_opt*)>, view_operator_func=0x0) at /data/src/10.4/sql/sql_admin.cc:1030
      #15 0x000055b8835a6330 in Sql_cmd_optimize_table::execute (this=0x7fc4740126f0, thd=0x7fc474000af0) at /data/src/10.4/sql/sql_admin.cc:1374
      #16 0x000055b88341652f in mysql_execute_command (thd=0x7fc474000af0) at /data/src/10.4/sql/sql_parse.cc:6101
      #17 0x000055b88341bbf1 in mysql_parse (thd=0x7fc474000af0, rawbuf=0x7fc474011f68 "OPTIMIZE TABLE t1", length=17, parser_state=0x7fc4e58a9160, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:7900
      #18 0x000055b88341b1ed in wsrep_mysql_parse (thd=0x7fc474000af0, rawbuf=0x7fc474011f68 "OPTIMIZE TABLE t1", length=17, parser_state=0x7fc4e58a9160, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:7704
      #19 0x000055b883406c80 in dispatch_command (command=COM_QUERY, thd=0x7fc474000af0, packet=0x7fc4740084a1 "", packet_length=17, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:1827
      #20 0x000055b88340544d in do_command (thd=0x7fc474000af0) at /data/src/10.4/sql/sql_parse.cc:1360
      #21 0x000055b88358e9b3 in do_handle_one_connection (connect=0x55b886e9a6e0) at /data/src/10.4/sql/sql_connect.cc:1412
      #22 0x000055b88358e702 in handle_one_connection (arg=0x55b886e9a6e0) at /data/src/10.4/sql/sql_connect.cc:1316
      #23 0x000055b883f970a1 in pfs_spawn_thread (arg=0x55b88694cee0) at /data/src/10.4/storage/perfschema/pfs.cc:1869
      #24 0x00007fc4f67ad4a4 in start_thread (arg=0x7fc4e58aa700) at pthread_create.c:456
      #25 0x00007fc4f48e1d0f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
      

      Reproducible on 10.4, 10.5.
      Not reproducible on 10.3.
      No obvious immediate problem on a non-debug build.

      Attachments

        Issue Links

          Activity

            Found another testcase. Only few frames are different.

            CREATE TABLE t (id INT KEY,a YEAR,INDEX (id,a));
            REPLACE INTO t (id,a)SELECT /*!99997 */ 1;
            

            Leads to:

            10.6.0 2f53ad4b7dec8c69068b9db20a0f6084fb4bd0b8 (Debug)

            mysqld: /test/10.6_dbg/wsrep-lib/src/transaction.cpp:734: int wsrep::transaction::before_rollback(): Assertion `0' failed.
            

            10.6.0 2f53ad4b7dec8c69068b9db20a0f6084fb4bd0b8 (Debug)

            Core was generated by `/test/GAL_MD150321-mariadb-10.6.0-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 0x151c39679700 (LWP 1305004))]
            (gdb) bt
            #0  __pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ../sysdeps/unix/sysv/linux/pthread_kill.c:56
            #1  0x000055c88a2f42cd in my_write_core (sig=sig@entry=6) at /test/10.6_dbg/mysys/stacktrace.c:424
            #2  0x000055c889a95124 in handle_fatal_signal (sig=6) at /test/10.6_dbg/sql/signal_handler.cc:331
            #3  <signal handler called>
            #4  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
            #5  0x0000151c5cba1859 in __GI_abort () at abort.c:79
            #6  0x0000151c5cba1729 in __assert_fail_base (fmt=0x151c5cd37588 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x55c88a60e4ac "0", file=0x55c88a9ea2f8 "/test/10.6_dbg/wsrep-lib/src/transaction.cpp", line=734, function=<optimized out>) at assert.c:92
            #7  0x0000151c5cbb2f36 in __GI___assert_fail (assertion=assertion@entry=0x55c88a60e4ac "0", file=file@entry=0x55c88a9ea2f8 "/test/10.6_dbg/wsrep-lib/src/transaction.cpp", line=line@entry=734, function=function@entry=0x55c88a9ea9b8 "int wsrep::transaction::before_rollback()") at assert.c:101
            #8  0x000055c88a41f8b2 in wsrep::transaction::before_rollback (this=this@entry=0x151bec0073f0) at /test/10.6_dbg/wsrep-lib/src/transaction.cpp:734
            #9  0x000055c889a9a741 in wsrep::client_state::before_rollback (this=0x151bec007388) at /test/10.6_dbg/wsrep-lib/include/wsrep/client_state.hpp:527
            #10 wsrep_before_rollback (all=false, thd=0x151bec000db8) at /test/10.6_dbg/sql/wsrep_trans_observer.h:395
            #11 ha_rollback_trans (thd=thd@entry=0x151bec000db8, all=all@entry=false) at /test/10.6_dbg/sql/handler.cc:2042
            #12 0x000055c889942aa8 in trans_rollback_stmt (thd=thd@entry=0x151bec000db8) at /test/10.6_dbg/sql/transaction.cc:535
            #13 0x000055c8897dac8c in mysql_execute_command (thd=thd@entry=0x151bec000db8) at /test/10.6_dbg/sql/sql_parse.cc:6025
            #14 0x000055c8897c0b82 in mysql_parse (thd=thd@entry=0x151bec000db8, rawbuf=rawbuf@entry=0x151bec013ba0 "REPLACE INTO t (id,a)SELECT /*!99997 */ 1", length=length@entry=41, parser_state=parser_state@entry=0x151c39678410) at /test/10.6_dbg/sql/sql_parse.cc:7998
            #15 0x000055c8897c051b in wsrep_mysql_parse (thd=thd@entry=0x151bec000db8, rawbuf=0x151bec013ba0 "REPLACE INTO t (id,a)SELECT /*!99997 */ 1", length=41, parser_state=parser_state@entry=0x151c39678410) at /test/10.6_dbg/sql/sql_parse.cc:7812
            #16 0x000055c8897cf5ec in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x151bec000db8, packet=packet@entry=0x151bec00b359 "REPLACE INTO t (id,a)SELECT /*!99997 */ 1", packet_length=packet_length@entry=41, blocking=blocking@entry=true) at /test/10.6_dbg/sql/sql_class.h:1318
            #17 0x000055c8897d29b0 in do_command (thd=0x151bec000db8, blocking=blocking@entry=true) at /test/10.6_dbg/sql/sql_parse.cc:1397
            #18 0x000055c88992caf1 in do_handle_one_connection (connect=<optimized out>, connect@entry=0x55c88c2b17a8, put_in_cache=put_in_cache@entry=true) at /test/10.6_dbg/sql/sql_connect.cc:1410
            #19 0x000055c88992d0f9 in handle_one_connection (arg=arg@entry=0x55c88c2b17a8) at /test/10.6_dbg/sql/sql_connect.cc:1312
            #20 0x000055c889dd9c01 in pfs_spawn_thread (arg=0x55c88c328f88) at /test/10.6_dbg/storage/perfschema/pfs.cc:2201
            #21 0x0000151c5d0af609 in start_thread (arg=<optimized out>) at pthread_create.c:477
            #22 0x0000151c5cc9e293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
            

            Bug confirmed present in:
            MariaDB: 10.4.19 (dbg), 10.5.10 (dbg), 10.6.0 (dbg)

            ramesh Ramesh Sivaraman added a comment - Found another testcase. Only few frames are different. CREATE TABLE t (id INT KEY,a YEAR,INDEX (id,a)); REPLACE INTO t (id,a)SELECT /*!99997 */ 1; Leads to: 10.6.0 2f53ad4b7dec8c69068b9db20a0f6084fb4bd0b8 (Debug) mysqld: /test/10.6_dbg/wsrep-lib/src/transaction.cpp:734: int wsrep::transaction::before_rollback(): Assertion `0' failed. 10.6.0 2f53ad4b7dec8c69068b9db20a0f6084fb4bd0b8 (Debug) Core was generated by `/test/GAL_MD150321-mariadb-10.6.0-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 0x151c39679700 (LWP 1305004))] (gdb) bt #0 __pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ../sysdeps/unix/sysv/linux/pthread_kill.c:56 #1 0x000055c88a2f42cd in my_write_core (sig=sig@entry=6) at /test/10.6_dbg/mysys/stacktrace.c:424 #2 0x000055c889a95124 in handle_fatal_signal (sig=6) at /test/10.6_dbg/sql/signal_handler.cc:331 #3 <signal handler called> #4 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 #5 0x0000151c5cba1859 in __GI_abort () at abort.c:79 #6 0x0000151c5cba1729 in __assert_fail_base (fmt=0x151c5cd37588 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x55c88a60e4ac "0", file=0x55c88a9ea2f8 "/test/10.6_dbg/wsrep-lib/src/transaction.cpp", line=734, function=<optimized out>) at assert.c:92 #7 0x0000151c5cbb2f36 in __GI___assert_fail (assertion=assertion@entry=0x55c88a60e4ac "0", file=file@entry=0x55c88a9ea2f8 "/test/10.6_dbg/wsrep-lib/src/transaction.cpp", line=line@entry=734, function=function@entry=0x55c88a9ea9b8 "int wsrep::transaction::before_rollback()") at assert.c:101 #8 0x000055c88a41f8b2 in wsrep::transaction::before_rollback (this=this@entry=0x151bec0073f0) at /test/10.6_dbg/wsrep-lib/src/transaction.cpp:734 #9 0x000055c889a9a741 in wsrep::client_state::before_rollback (this=0x151bec007388) at /test/10.6_dbg/wsrep-lib/include/wsrep/client_state.hpp:527 #10 wsrep_before_rollback (all=false, thd=0x151bec000db8) at /test/10.6_dbg/sql/wsrep_trans_observer.h:395 #11 ha_rollback_trans (thd=thd@entry=0x151bec000db8, all=all@entry=false) at /test/10.6_dbg/sql/handler.cc:2042 #12 0x000055c889942aa8 in trans_rollback_stmt (thd=thd@entry=0x151bec000db8) at /test/10.6_dbg/sql/transaction.cc:535 #13 0x000055c8897dac8c in mysql_execute_command (thd=thd@entry=0x151bec000db8) at /test/10.6_dbg/sql/sql_parse.cc:6025 #14 0x000055c8897c0b82 in mysql_parse (thd=thd@entry=0x151bec000db8, rawbuf=rawbuf@entry=0x151bec013ba0 "REPLACE INTO t (id,a)SELECT /*!99997 */ 1", length=length@entry=41, parser_state=parser_state@entry=0x151c39678410) at /test/10.6_dbg/sql/sql_parse.cc:7998 #15 0x000055c8897c051b in wsrep_mysql_parse (thd=thd@entry=0x151bec000db8, rawbuf=0x151bec013ba0 "REPLACE INTO t (id,a)SELECT /*!99997 */ 1", length=41, parser_state=parser_state@entry=0x151c39678410) at /test/10.6_dbg/sql/sql_parse.cc:7812 #16 0x000055c8897cf5ec in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x151bec000db8, packet=packet@entry=0x151bec00b359 "REPLACE INTO t (id,a)SELECT /*!99997 */ 1", packet_length=packet_length@entry=41, blocking=blocking@entry=true) at /test/10.6_dbg/sql/sql_class.h:1318 #17 0x000055c8897d29b0 in do_command (thd=0x151bec000db8, blocking=blocking@entry=true) at /test/10.6_dbg/sql/sql_parse.cc:1397 #18 0x000055c88992caf1 in do_handle_one_connection (connect=<optimized out>, connect@entry=0x55c88c2b17a8, put_in_cache=put_in_cache@entry=true) at /test/10.6_dbg/sql/sql_connect.cc:1410 #19 0x000055c88992d0f9 in handle_one_connection (arg=arg@entry=0x55c88c2b17a8) at /test/10.6_dbg/sql/sql_connect.cc:1312 #20 0x000055c889dd9c01 in pfs_spawn_thread (arg=0x55c88c328f88) at /test/10.6_dbg/storage/perfschema/pfs.cc:2201 #21 0x0000151c5d0af609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #22 0x0000151c5cc9e293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Bug confirmed present in: MariaDB: 10.4.19 (dbg), 10.5.10 (dbg), 10.6.0 (dbg)
            ramesh Ramesh Sivaraman added a comment - - edited

            jplindst The MTR test case is not failing on latest 10.4 build, but the Galera server crashes using the given test case.

            CREATE TABLE t (id INT KEY,a YEAR,INDEX (id,a));
            REPLACE INTO t (id,a)SELECT /*!99997 */ 1;
            

            10.4.23 12cad0c3468d734e041d4ef0cd5a26d2a28606fc (Debug)

            mysqld: /test/10.4_dbg/wsrep-lib/src/transaction.cpp:734: int wsrep::transaction::before_rollback(): Assertion `0' failed.
            

            ramesh Ramesh Sivaraman added a comment - - edited jplindst The MTR test case is not failing on latest 10.4 build, but the Galera server crashes using the given test case. CREATE TABLE t (id INT KEY ,a YEAR , INDEX (id,a)); REPLACE INTO t (id,a) SELECT /*!99997 */ 1; 10.4.23 12cad0c3468d734e041d4ef0cd5a26d2a28606fc (Debug) mysqld: /test/10.4_dbg/wsrep-lib/src/transaction.cpp:734: int wsrep::transaction::before_rollback(): Assertion `0' failed.

            With latest 10.4 commit 4daea2 I could not reproduce with any of the given test cases.

            janlindstrom Jan Lindström added a comment - With latest 10.4 commit 4daea2 I could not reproduce with any of the given test cases.
            janlindstrom Jan Lindström added a comment - 10.4 : https://github.com/MariaDB/server/pull/2916 10.5 : https://github.com/MariaDB/server/pull/2917 10.6: https://github.com/MariaDB/server/pull/2918

            People

              sysprg Julius Goryavsky
              elenst Elena Stepanova
              Votes:
              0 Vote for this issue
              Watchers:
              5 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.