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

Assertion `client_state.transaction().active()' failed in int wsrep_thd_append_key(THD*, const wsrep_key*, int, Wsrep_service_key_type)

    XMLWordPrintable

Details

    Description

      RQG run crashes Galera multi source slave node
      Setup

      Async Master1 - Async Master2  
           \         /
            \       /
             \     /
              \   /                  
      Galera Slave (Galera node1) 
      

      Test case

      GALERA_BASE=/home/ramesh/rpl/mariadb-12.1.0-linux-x86_64
      RPL_BASE=/home/ramesh/rpl/mariadb-12.1.0-linux-x86_64
      DATADIR=/home/ramesh/rpl
       
      $RPL_BASE/bin/mariadb-admin -uroot --socket=$DATADIR/data2/socket.sock shutdown
      $RPL_BASE/bin/mariadb-admin -uroot --socket=$DATADIR/data1/socket.sock shutdown
      $GALERA_BASE/bin/mariadb-admin -uroot --socket=$DATADIR/node2/mysql.sock shutdown
      $GALERA_BASE/bin/mariadb-admin -uroot --socket=$DATADIR/node1/mysql.sock shutdown
       
      rm -Rf $DATADIR/node* $DATADIR/data*
       
      $GALERA_BASE/scripts/mariadb-install-db --no-defaults --force --auth-root-authentication-method=normal  --basedir=$GALERA_BASE --datadir=$DATADIR/node1 
      $GALERA_BASE/scripts/mariadb-install-db --no-defaults --force --auth-root-authentication-method=normal  --basedir=$GALERA_BASE --datadir=$DATADIR/node2
      $RPL_BASE/scripts/mariadb-install-db --no-defaults --force --auth-root-authentication-method=normal  --basedir=$RPL_BASE --datadir=$DATADIR/data1
      $RPL_BASE/scripts/mariadb-install-db --no-defaults --force --auth-root-authentication-method=normal  --basedir=$RPL_BASE --datadir=$DATADIR/data2
       
      $GALERA_BASE/bin/mariadbd --defaults-file=$DATADIR/n1.cnf --wsrep-new-cluster > $DATADIR/node1/node1.err 2>&1 & 
      sleep 4
      $GALERA_BASE/bin/mariadb-admin  -uroot -S$DATADIR/node1/mysql.sock ping
       
      $GALERA_BASE/bin/mariadbd --defaults-file=$DATADIR/n2.cnf > $DATADIR/node2/node2.err 2>&1 &
      sleep 10
       
      $GALERA_BASE/bin/mariadb-admin  -uroot -S$DATADIR/node2/mysql.sock ping
       
      $RPL_BASE/bin/mariadbd --defaults-file=$DATADIR/master1_n1.cnf > $DATADIR/data1/mysql.err 2>&1 & 
      sleep 5
      $RPL_BASE/bin/mariadb-admin  -uroot -S$DATADIR/data1/socket.sock ping
       
      $RPL_BASE/bin/mariadb -uroot --socket=$DATADIR/data1/socket.sock  <<'EOF'
      set sql_log_bin=0;
      delete from mysql.user where user='';
      flush privileges;
      create user repl@'%' identified by 'repl';
      grant all on *.* to  repl@'%';
      flush privileges;
      set sql_log_bin=1;
      EOF
       
      $RPL_BASE/bin/mariadbd --defaults-file=$DATADIR/master1_n2.cnf > $DATADIR/data2/mysql.err 2>&1 & 
      sleep 5
      $RPL_BASE/bin/mariadb-admin  -uroot -S$DATADIR/data2/socket.sock ping
       
      $RPL_BASE/bin/mariadb -uroot --socket=$DATADIR/data2/socket.sock  <<'EOF'
      set sql_log_bin=0;
      delete from mysql.user where user='';
      flush privileges;
      create user repl@'%' identified by 'repl';
      grant all on *.* to  repl@'%';
      flush privileges;
      set sql_log_bin=1;
      EOF
       
      $GALERA_BASE/bin/mysql -uroot -S$DATADIR/node1/mysql.sock <<'EOF'
      CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=4040, MASTER_USER='repl', MASTER_PASSWORD='repl', MASTER_USE_GTID=slave_pos FOR CHANNEL 'master1'; 
      CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=4041, MASTER_USER='repl', MASTER_PASSWORD='repl', MASTER_USE_GTID=slave_pos FOR CHANNEL 'master2'; 
      START SLAVE FOR CHANNEL 'master1';
      START SLAVE FOR CHANNEL 'master2';
      SHOW SLAVE STATUS FOR CHANNEL 'master1' \G
      SHOW SLAVE STATUS FOR CHANNEL 'master2' \G
      EOF
      

      Leads to

      Run RQG

      perl gendata.pl --dsn=dbi:mysql:host=127.0.0.1:port=4040:user=root:database=test --spec=conf/transactions/transactions.zz
      perl gentest.pl --dsn=dbi:mysql:host=127.0.0.1:port=4040:user=root:database=test --grammar=conf/transactions/transactions.yy --threads=32 --duration=10300 --queries=100000000 &
       
      perl gendata.pl --dsn=dbi:mysql:host=127.0.0.1:port=4041:user=root:database=test --spec=conf/transactions/transactions.zz
      perl gentest.pl --dsn=dbi:mysql:host=127.0.0.1:port=4041:user=root:database=test --grammar=conf/transactions/transactions.yy --threads=32 --duration=10300 --queries=100000000 &
      
      

      CS 12.1.0 4b79d7b8ee557d53a859aedec839b8673585b514 (Debug) Build 30/05/2025

      mariadbd: /home/ramesh/12.0/sql/service_wsrep.cc:318: int wsrep_thd_append_key(THD*, const wsrep_key*, int, Wsrep_service_key_type): Assertion `client_state.transaction().active()' failed.
      250530  8:56:27 [ERROR] /home/ramesh/rpl/mariadb-12.1.0-linux-x86_64/bin/mariadbd got signal 6 ;
      Sorry, we probably made a mistake, and this is a bug.
       
      #0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
      #1  0x00007f767a68d859 in __GI_abort () at abort.c:79
      #2  0x00007f767a68d729 in __assert_fail_base (fmt=0x7f767a823588 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x56142b220a80 "client_state.transaction().active()", 
          file=0x56142b2206b8 "/home/ramesh/12.0/sql/service_wsrep.cc", line=318, function=<optimized out>) at assert.c:94
      #3  0x00007f767a69efd6 in __GI___assert_fail (assertion=0x56142b220a80 "client_state.transaction().active()", file=0x56142b2206b8 "/home/ramesh/12.0/sql/service_wsrep.cc", line=318, 
          function=0x56142b220aa8 "int wsrep_thd_append_key(THD*, const wsrep_key*, int, Wsrep_service_key_type)") at assert.c:103
      #4  0x000056142a941f8d in wsrep_thd_append_key (thd=0x7f7560016918, key=0x7f76381d2860, n_keys=1, key_type=WSREP_SERVICE_KEY_EXCLUSIVE) at /home/ramesh/12.0/sql/service_wsrep.cc:318
      #5  0x000056142a983494 in wsrep_append_key (thd=0x7f7560016918, trx=0x7f764195f080, table_share=0x7f757001fa20, key=0x7f76381d2940 "", key_len=5, key_type=WSREP_SERVICE_KEY_EXCLUSIVE)
          at /home/ramesh/12.0/storage/innobase/handler/ha_innodb.cc:10155
      #6  0x000056142a983e40 in ha_innobase::wsrep_append_keys (this=0x7f7560292a78, thd=0x7f7560016918, key_type=WSREP_SERVICE_KEY_EXCLUSIVE, record0=0x7f75602932d8 "\371d", record1=0x0)
          at /home/ramesh/12.0/storage/innobase/handler/ha_innodb.cc:10329
      #7  0x000056142a97dead in ha_innobase::write_row (this=0x7f7560292a78, record=0x7f75602932d8 "\371d") at /home/ramesh/12.0/storage/innobase/handler/ha_innodb.cc:7936
      #8  0x000056142a5c1aa6 in handler::ha_write_row (this=0x7f7560292a78, buf=0x7f75602932d8 "\371d") at /home/ramesh/12.0/sql/handler.cc:8234
      #9  0x000056142a761572 in Rows_log_event::write_row (this=0x7f75a4059458, rgi=0x7f757c0c2180, overwrite=false) at /home/ramesh/12.0/sql/log_event_server.cc:6918
      #10 0x000056142a76238b in Write_rows_log_event::do_exec_row (this=0x7f75a4059458, rgi=0x7f757c0c2180) at /home/ramesh/12.0/sql/log_event_server.cc:7180
      #11 0x000056142a75bf06 in Rows_log_event::do_apply_event (this=0x7f75a4059458, rgi=0x7f757c0c2180) at /home/ramesh/12.0/sql/log_event_server.cc:5217
      #12 0x000056142a747dcd in Log_event::apply_event (this=0x7f75a4059458, rgi=0x7f757c0c2180) at /home/ramesh/12.0/sql/log_event.cc:3984
      #13 0x000056142a09200f in apply_event_and_update_pos_apply (ev=0x7f75a4059458, thd=0x7f7560016918, rgi=0x7f757c0c2180, reason=0) at /home/ramesh/12.0/sql/slave.cc:3626
      #14 0x000056142a092674 in apply_event_and_update_pos_for_parallel (ev=0x7f75a4059458, thd=0x7f7560016918, rgi=0x7f757c0c2180) at /home/ramesh/12.0/sql/slave.cc:3833
      #15 0x000056142a44e772 in rpt_handle_event (qev=0x7f757c0c2ed8, rpt=0x7f757c02ec00) at /home/ramesh/12.0/sql/rpl_parallel.cc:66
      #16 0x000056142a452906 in handle_rpl_parallel_thread (arg=0x7f757c02ec00) at /home/ramesh/12.0/sql/rpl_parallel.cc:1578
      #17 0x00007f767abb9609 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #18 0x00007f767a78a353 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
      

      Attachments

        1. master1_n1.cnf
          0.4 kB
          Ramesh Sivaraman
        2. master1_n2.cnf
          0.4 kB
          Ramesh Sivaraman
        3. n1.cnf
          0.9 kB
          Ramesh Sivaraman
        4. n2.cnf
          0.9 kB
          Ramesh Sivaraman
        5. transactions.yy
          4 kB
          Ramesh Sivaraman
        6. transactions.zz
          0.9 kB
          Ramesh Sivaraman

        Activity

          People

            sysprg Julius Goryavsky (Inactive)
            ramesh Ramesh Sivaraman
            Votes:
            0 Vote for this issue
            Watchers:
            1 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.