mariadb/mysql-test/suite/galera/t/mdev_21718.test
Teemu Ollakka 1e2a4ed7ed MDEV-21718 Assertion in wsrep::client_state::before_command().
An assertion

  `server_state_.rollback_mode() == wsrep::server_state::rm_async`

fired in before_command() when
- thread-handling was set to pool-of-threads and
- a BF abort happened between client session calls to
  wait_rollback_complete_and_acquire_ownership() and before_command().

This commit introduces a test case to reproduce the crash and
updates wsrep-lib submodule to fixed version.
2020-07-24 13:26:21 +03:00

33 lines
815 B
Text

#
# MDEV-21718 Reproduce a case where BF abort after
# client session acquires the ownership but before calls
# before_command() causes an assertion in wsrep-lib.
#
--source include/galera_cluster.inc
--source include/have_innodb.inc
CREATE TABLE t1 (f1 INT PRIMARY KEY) ENGINE=InnoDB;
--let $galera_connection_name = node_1_ctrl
--let $galera_server_number = 1
--source include/galera_connect.inc
--connection node_1
START TRANSACTION;
INSERT INTO t1 VALUES (1);
SET DEBUG_SYNC = "wsrep_before_before_command SIGNAL reached WAIT_FOR continue";
--send COMMIT
--connection node_1_ctrl
SET DEBUG_SYNC = "now WAIT_FOR reached";
--connection node_2
INSERT INTO t1 VALUES (1);
# BF abort wakes up node_1 from sync wait.
--connection node_1
--error ER_LOCK_DEADLOCK
--reap
DROP TABLE t1;
SET DEBUG_SYNC = "RESET";