-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
72 changed files
with
1,598 additions
and
328 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,3 @@ | ||
connection node_1; | ||
connection node_2; | ||
connection node_2; | ||
connection node_1; | ||
connection node_1; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
connection node_2; | ||
connection node_1; | ||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 CHAR(6)) ENGINE=InnoDB; | ||
connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2; | ||
connection node_2; | ||
START TRANSACTION; | ||
INSERT INTO t1 VALUES (1,'node_2'); | ||
connection node_1; | ||
INSERT INTO t1 VALUES (1,'node_1'); | ||
connection node_2a; | ||
connection node_2; | ||
INSERT INTO t1 VALUES (2, 'node_2'); | ||
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction | ||
wsrep_local_aborts_increment | ||
1 | ||
DROP TABLE t1; |
22 changes: 22 additions & 0 deletions
22
mysql-test/suite/galera/r/galera_bf_abort_ps_threadpool.result
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
connection node_2; | ||
connection node_1; | ||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 CHAR(6)) ENGINE=InnoDB; | ||
connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2; | ||
connection node_2; | ||
START TRANSACTION; | ||
INSERT INTO t1 VALUES (1,'node_2'); | ||
connection node_2a; | ||
SET GLOBAL debug_dbug = "+d,sync.wsrep_apply_cb"; | ||
connection node_1; | ||
INSERT INTO t1 VALUES (1,'node_1'); | ||
connection node_2a; | ||
SET DEBUG_SYNC = "now WAIT_FOR sync.wsrep_apply_cb_reached"; | ||
connection node_2; | ||
SET DEBUG_SYNC = "wsrep_before_before_command SIGNAL signal.wsrep_apply_cb WAIT_FOR bf_abort"; | ||
INSERT INTO t1 VALUES (2, 'node_2'); | ||
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction | ||
wsrep_local_aborts_increment | ||
1 | ||
SET DEBUG_SYNC = 'RESET'; | ||
SET GLOBAL debug_dbug = DEFAULT; | ||
DROP TABLE t1; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
!include ../galera_2nodes.cnf | ||
[mysqltest] | ||
ps-protocol |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
# | ||
# MDEV-24255 | ||
# Test BF abort of a transaction that has ps-protocol enabled | ||
# | ||
|
||
--source include/galera_cluster.inc | ||
|
||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 CHAR(6)) ENGINE=InnoDB; | ||
--connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2 | ||
|
||
--connection node_2 | ||
--let $wsrep_local_bf_aborts_before = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_bf_aborts'` | ||
|
||
START TRANSACTION; | ||
INSERT INTO t1 VALUES (1,'node_2'); | ||
|
||
--connection node_1 | ||
INSERT INTO t1 VALUES (1,'node_1'); | ||
|
||
--connection node_2a | ||
--let $wait_condition = SELECT COUNT(*) = 1 FROM t1 WHERE f2 = 'node_1' | ||
--source include/wait_condition.inc | ||
|
||
--connection node_2 | ||
--error ER_LOCK_DEADLOCK | ||
INSERT INTO t1 VALUES (2, 'node_2'); | ||
|
||
--let $wsrep_local_bf_aborts_after = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_bf_aborts'` | ||
|
||
--disable_query_log | ||
--eval SELECT $wsrep_local_bf_aborts_after - $wsrep_local_bf_aborts_before = 1 AS wsrep_local_aborts_increment; | ||
--enable_query_log | ||
|
||
DROP TABLE t1; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
!include ../galera_2nodes.cnf | ||
|
||
[mysqld] | ||
thread-handling=pool-of-threads | ||
|
||
[mysqltest] | ||
ps-protocol |
54 changes: 54 additions & 0 deletions
54
mysql-test/suite/galera/t/galera_bf_abort_ps_threadpool.test
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
# | ||
# MDEV-24255 | ||
# Test BF abort of a transaction that has ps-protocol enabled | ||
# This test stresses the case where wsrep_before_command() | ||
# finds the transaction in state s_must_abort. This only | ||
# possible when the server is using the thread pool. | ||
# | ||
|
||
--source include/galera_cluster.inc | ||
--source include/have_debug_sync.inc | ||
|
||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 CHAR(6)) ENGINE=InnoDB; | ||
|
||
--connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2 | ||
|
||
--connection node_2 | ||
--let $wsrep_local_bf_aborts_before = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_bf_aborts'` | ||
|
||
START TRANSACTION; | ||
INSERT INTO t1 VALUES (1,'node_2'); | ||
|
||
--connection node_2a | ||
SET GLOBAL debug_dbug = "+d,sync.wsrep_apply_cb"; | ||
|
||
--connection node_1 | ||
INSERT INTO t1 VALUES (1,'node_1'); | ||
|
||
--connection node_2a | ||
SET DEBUG_SYNC = "now WAIT_FOR sync.wsrep_apply_cb_reached"; | ||
|
||
--connection node_2 | ||
SET DEBUG_SYNC = "wsrep_before_before_command SIGNAL signal.wsrep_apply_cb WAIT_FOR bf_abort"; | ||
|
||
# | ||
# The following INSERT is expected to enter | ||
# wsrep_before_command() and find its transaction | ||
# in state s_must_abort. | ||
# Notice that the test appears more complicated | ||
# than it needs to... however we cannot use | ||
# --send for this INSERT, otherwise mysqltest | ||
# will not use ps-protocol | ||
# | ||
--error ER_LOCK_DEADLOCK | ||
INSERT INTO t1 VALUES (2, 'node_2'); | ||
|
||
--let $wsrep_local_bf_aborts_after = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_bf_aborts'` | ||
|
||
--disable_query_log | ||
--eval SELECT $wsrep_local_bf_aborts_after - $wsrep_local_bf_aborts_before = 1 AS wsrep_local_aborts_increment; | ||
--enable_query_log | ||
|
||
SET DEBUG_SYNC = 'RESET'; | ||
SET GLOBAL debug_dbug = DEFAULT; | ||
DROP TABLE t1; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.