831 lines
20 KiB
Plaintext
831 lines
20 KiB
Plaintext
call mtr.add_suppression("You need to use --log-bin to make --log-slave-updates work.");
|
|
include/gtid_utils.inc
|
|
CREATE VIEW v_processlist as SELECT * FROM performance_schema.threads where type = 'FOREGROUND';
|
|
call mtr.add_suppression("Found 10 prepared XA transactions");
|
|
call mtr.add_suppression("Found 1 prepared XA transactions");
|
|
CREATE TABLE t (a INT) ENGINE=innodb;
|
|
SET @@sql_log_bin = OFF;
|
|
CREATE TEMPORARY TABLE tmp1 (a int) ENGINE=innodb;
|
|
XA START 'trx1tmp';
|
|
INSERT INTO tmp1 SET a=1;
|
|
XA END 'trx1tmp';
|
|
XA PREPARE 'trx1tmp';
|
|
SET @@sql_log_bin = OFF;
|
|
CREATE TEMPORARY TABLE tmp1 (a int) ENGINE=innodb;
|
|
XA START 'trx2tmp';
|
|
INSERT INTO tmp1 SET a=1;
|
|
XA END 'trx2tmp';
|
|
XA PREPARE 'trx2tmp';
|
|
SET @@sql_log_bin = OFF;
|
|
CREATE TEMPORARY TABLE tmp1 (a int) ENGINE=innodb;
|
|
XA START 'trx3tmp';
|
|
INSERT INTO tmp1 SET a=1;
|
|
XA END 'trx3tmp';
|
|
XA PREPARE 'trx3tmp';
|
|
XA COMMIT 'trx1tmp';
|
|
ERROR XAE04: XAER_NOTA: Unknown XID
|
|
XA ROLLBACK 'trx1tmp';
|
|
ERROR XAE04: XAER_NOTA: Unknown XID
|
|
XA START 'trx1tmp';
|
|
ERROR XAE08: XAER_DUPID: The XID already exists
|
|
*** 3 prepared transactions must be in the list ***
|
|
XA RECOVER;
|
|
formatID gtrid_length bqual_length data
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
XA COMMIT 'trx1tmp';
|
|
KILL connection CONN_ID;
|
|
XA COMMIT 'trx3tmp';
|
|
XA START 'trx1ro1';
|
|
SELECT * from t ORDER BY a;
|
|
XA END 'trx1ro1';
|
|
XA PREPARE 'trx1ro1';
|
|
XA START 'trx2ro1';
|
|
SELECT * from t ORDER BY a;
|
|
XA END 'trx2ro1';
|
|
XA PREPARE 'trx2ro1';
|
|
XA START 'trx3ro1';
|
|
SELECT * from t ORDER BY a;
|
|
XA END 'trx3ro1';
|
|
XA PREPARE 'trx3ro1';
|
|
*** 4 prepared transactions must be in the list ***
|
|
XA RECOVER;
|
|
formatID gtrid_length bqual_length data
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
XA COMMIT 'trx1ro1';
|
|
KILL connection CONN_ID;
|
|
XA COMMIT 'trx3ro1';
|
|
XA START 'trx1ro2';
|
|
SELECT * from t ORDER BY a;
|
|
XA END 'trx1ro2';
|
|
XA PREPARE 'trx1ro2';
|
|
XA START 'trx2ro2';
|
|
SELECT * from t ORDER BY a;
|
|
XA END 'trx2ro2';
|
|
XA PREPARE 'trx2ro2';
|
|
XA START 'trx3ro2';
|
|
SELECT * from t ORDER BY a;
|
|
XA END 'trx3ro2';
|
|
XA PREPARE 'trx3ro2';
|
|
*** 5 prepared transactions must be in the list ***
|
|
XA RECOVER;
|
|
formatID gtrid_length bqual_length data
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
XA ROLLBACK 'trx1ro2';
|
|
KILL connection CONN_ID;
|
|
XA ROLLBACK 'trx3ro2';
|
|
XA START 'trx1empty1';
|
|
XA END 'trx1empty1';
|
|
XA PREPARE 'trx1empty1';
|
|
XA START 'trx2empty1';
|
|
XA END 'trx2empty1';
|
|
XA PREPARE 'trx2empty1';
|
|
XA START 'trx3empty1';
|
|
XA END 'trx3empty1';
|
|
XA PREPARE 'trx3empty1';
|
|
*** 6 prepared transactions must be in the list ***
|
|
XA RECOVER;
|
|
formatID gtrid_length bqual_length data
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
XA COMMIT 'trx1empty1';
|
|
KILL connection CONN_ID;
|
|
XA COMMIT 'trx3empty1';
|
|
XA START 'trx1empty2';
|
|
XA END 'trx1empty2';
|
|
XA PREPARE 'trx1empty2';
|
|
XA START 'trx2empty2';
|
|
XA END 'trx2empty2';
|
|
XA PREPARE 'trx2empty2';
|
|
XA START 'trx3empty2';
|
|
XA END 'trx3empty2';
|
|
XA PREPARE 'trx3empty2';
|
|
*** 7 prepared transactions must be in the list ***
|
|
XA RECOVER;
|
|
formatID gtrid_length bqual_length data
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
XA ROLLBACK 'trx1empty2';
|
|
KILL connection CONN_ID;
|
|
XA ROLLBACK 'trx3empty2';
|
|
XA START 'trx1unprepared';
|
|
INSERT INTO t set a=0;
|
|
XA END 'trx1unprepared';
|
|
INSERT INTO t set a=0;
|
|
ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the IDLE state
|
|
XA START 'trx1unprepared';
|
|
ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the IDLE state
|
|
XA START 'trx1unprepared';
|
|
ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the IDLE state
|
|
XA COMMIT 'trx1unprepared';
|
|
ERROR XAE04: XAER_NOTA: Unknown XID
|
|
SET @@binlog_format = 'STATEMENT';
|
|
XA START 'trx_0';
|
|
INSERT INTO t SET a=0;
|
|
XA END 'trx_0';
|
|
XA PREPARE 'trx_0';
|
|
SET @@binlog_format = 'STATEMENT';
|
|
SET @@binlog_format = 'ROW';
|
|
XA START 'trx_1';
|
|
INSERT INTO t SET a=1;
|
|
XA END 'trx_1';
|
|
XA PREPARE 'trx_1';
|
|
SET @@binlog_format = 'STATEMENT';
|
|
XA START 'trx_2';
|
|
INSERT INTO t SET a=2;
|
|
XA END 'trx_2';
|
|
XA PREPARE 'trx_2';
|
|
SET @@binlog_format = 'STATEMENT';
|
|
SET @@binlog_format = 'ROW';
|
|
XA START 'trx_3';
|
|
INSERT INTO t SET a=3;
|
|
XA END 'trx_3';
|
|
XA PREPARE 'trx_3';
|
|
SET @@binlog_format = 'STATEMENT';
|
|
XA START 'trx_4';
|
|
INSERT INTO t SET a=4;
|
|
XA END 'trx_4';
|
|
XA PREPARE 'trx_4';
|
|
SET @@binlog_format = 'STATEMENT';
|
|
SET @@binlog_format = 'ROW';
|
|
XA START 'trx_5';
|
|
INSERT INTO t SET a=5;
|
|
XA END 'trx_5';
|
|
XA PREPARE 'trx_5';
|
|
SET @@binlog_format = 'STATEMENT';
|
|
XA START 'trx_6';
|
|
INSERT INTO t SET a=6;
|
|
XA END 'trx_6';
|
|
XA PREPARE 'trx_6';
|
|
SET @@binlog_format = 'STATEMENT';
|
|
SET @@binlog_format = 'ROW';
|
|
XA START 'trx_7';
|
|
INSERT INTO t SET a=7;
|
|
XA END 'trx_7';
|
|
XA PREPARE 'trx_7';
|
|
SET @@binlog_format = 'STATEMENT';
|
|
XA START 'trx_8';
|
|
INSERT INTO t SET a=8;
|
|
XA END 'trx_8';
|
|
XA PREPARE 'trx_8';
|
|
SET @@binlog_format = 'STATEMENT';
|
|
SET @@binlog_format = 'ROW';
|
|
XA START 'trx_9';
|
|
INSERT INTO t SET a=9;
|
|
XA END 'trx_9';
|
|
XA PREPARE 'trx_9';
|
|
SET @@binlog_format = 'STATEMENT';
|
|
XA START 'trx_10';
|
|
INSERT INTO t SET a=10;
|
|
XA END 'trx_10';
|
|
XA PREPARE 'trx_10';
|
|
SET @@binlog_format = 'STATEMENT';
|
|
SET @@binlog_format = 'ROW';
|
|
XA START 'trx_11';
|
|
INSERT INTO t SET a=11;
|
|
XA END 'trx_11';
|
|
XA PREPARE 'trx_11';
|
|
SET @@binlog_format = 'STATEMENT';
|
|
XA START 'trx_12';
|
|
INSERT INTO t SET a=12;
|
|
XA END 'trx_12';
|
|
XA PREPARE 'trx_12';
|
|
SET @@binlog_format = 'STATEMENT';
|
|
SET @@binlog_format = 'ROW';
|
|
XA START 'trx_13';
|
|
INSERT INTO t SET a=13;
|
|
XA END 'trx_13';
|
|
XA PREPARE 'trx_13';
|
|
SET @@binlog_format = 'STATEMENT';
|
|
XA START 'trx_14';
|
|
INSERT INTO t SET a=14;
|
|
XA END 'trx_14';
|
|
XA PREPARE 'trx_14';
|
|
SET @@binlog_format = 'STATEMENT';
|
|
SET @@binlog_format = 'ROW';
|
|
XA START 'trx_15';
|
|
INSERT INTO t SET a=15;
|
|
XA END 'trx_15';
|
|
XA PREPARE 'trx_15';
|
|
KILL CONNECTION CONN_ID;
|
|
SET @@binlog_format = 'STATEMENT';
|
|
XA START 'trx_16';
|
|
INSERT INTO t SET a=16;
|
|
XA END 'trx_16';
|
|
XA PREPARE 'trx_16';
|
|
KILL CONNECTION CONN_ID;
|
|
SET @@binlog_format = 'STATEMENT';
|
|
SET @@binlog_format = 'ROW';
|
|
XA START 'trx_17';
|
|
INSERT INTO t SET a=17;
|
|
XA END 'trx_17';
|
|
XA PREPARE 'trx_17';
|
|
KILL CONNECTION CONN_ID;
|
|
SET @@binlog_format = 'STATEMENT';
|
|
XA START 'trx_18';
|
|
INSERT INTO t SET a=18;
|
|
XA END 'trx_18';
|
|
XA PREPARE 'trx_18';
|
|
KILL CONNECTION CONN_ID;
|
|
SET @@binlog_format = 'STATEMENT';
|
|
SET @@binlog_format = 'ROW';
|
|
XA START 'trx_19';
|
|
INSERT INTO t SET a=19;
|
|
XA END 'trx_19';
|
|
XA PREPARE 'trx_19';
|
|
KILL CONNECTION CONN_ID;
|
|
XA ROLLBACK 'trx_0';
|
|
XA ROLLBACK 'trx_1';
|
|
XA ROLLBACK 'trx_2';
|
|
XA ROLLBACK 'trx_3';
|
|
XA ROLLBACK 'trx_4';
|
|
XA COMMIT 'trx_5';
|
|
XA COMMIT 'trx_6';
|
|
XA COMMIT 'trx_7';
|
|
XA COMMIT 'trx_8';
|
|
XA COMMIT 'trx_9';
|
|
# restart
|
|
XA START 'new_trx_0';
|
|
INSERT INTO t SET a=0;
|
|
XA END 'new_trx_0';
|
|
XA PREPARE 'new_trx_0';
|
|
XA START 'new_trx_1';
|
|
INSERT INTO t SET a=1;
|
|
XA END 'new_trx_1';
|
|
XA PREPARE 'new_trx_1';
|
|
XA START 'new_trx_2';
|
|
INSERT INTO t SET a=2;
|
|
XA END 'new_trx_2';
|
|
XA PREPARE 'new_trx_2';
|
|
XA START 'new_trx_3';
|
|
INSERT INTO t SET a=3;
|
|
XA END 'new_trx_3';
|
|
XA PREPARE 'new_trx_3';
|
|
XA START 'new_trx_4';
|
|
INSERT INTO t SET a=4;
|
|
XA END 'new_trx_4';
|
|
XA PREPARE 'new_trx_4';
|
|
XA START 'new_trx_5';
|
|
INSERT INTO t SET a=5;
|
|
XA END 'new_trx_5';
|
|
XA PREPARE 'new_trx_5';
|
|
XA START 'new_trx_6';
|
|
INSERT INTO t SET a=6;
|
|
XA END 'new_trx_6';
|
|
XA PREPARE 'new_trx_6';
|
|
XA START 'new_trx_7';
|
|
INSERT INTO t SET a=7;
|
|
XA END 'new_trx_7';
|
|
XA PREPARE 'new_trx_7';
|
|
XA START 'new_trx_8';
|
|
INSERT INTO t SET a=8;
|
|
XA END 'new_trx_8';
|
|
XA PREPARE 'new_trx_8';
|
|
XA START 'new_trx_9';
|
|
INSERT INTO t SET a=9;
|
|
XA END 'new_trx_9';
|
|
XA PREPARE 'new_trx_9';
|
|
XA COMMIT 'new_trx_0';
|
|
XA COMMIT 'new_trx_1';
|
|
XA COMMIT 'new_trx_2';
|
|
XA COMMIT 'new_trx_3';
|
|
XA COMMIT 'new_trx_4';
|
|
XA COMMIT 'new_trx_5';
|
|
XA COMMIT 'new_trx_6';
|
|
XA COMMIT 'new_trx_7';
|
|
XA COMMIT 'new_trx_8';
|
|
XA COMMIT 'new_trx_9';
|
|
XA START 'trx_10';
|
|
ERROR XAE08: XAER_DUPID: The XID already exists
|
|
XA COMMIT 'trx_10';
|
|
XA START 'trx_11';
|
|
ERROR XAE08: XAER_DUPID: The XID already exists
|
|
XA COMMIT 'trx_11';
|
|
XA START 'trx_12';
|
|
ERROR XAE08: XAER_DUPID: The XID already exists
|
|
XA COMMIT 'trx_12';
|
|
XA START 'trx_13';
|
|
ERROR XAE08: XAER_DUPID: The XID already exists
|
|
XA COMMIT 'trx_13';
|
|
XA START 'trx_14';
|
|
ERROR XAE08: XAER_DUPID: The XID already exists
|
|
XA COMMIT 'trx_14';
|
|
XA START 'trx_15';
|
|
ERROR XAE08: XAER_DUPID: The XID already exists
|
|
XA ROLLBACK 'trx_15';
|
|
XA START 'trx_16';
|
|
ERROR XAE08: XAER_DUPID: The XID already exists
|
|
XA ROLLBACK 'trx_16';
|
|
XA START 'trx_17';
|
|
ERROR XAE08: XAER_DUPID: The XID already exists
|
|
XA ROLLBACK 'trx_17';
|
|
XA START 'trx_18';
|
|
ERROR XAE08: XAER_DUPID: The XID already exists
|
|
XA ROLLBACK 'trx_18';
|
|
XA START 'trx_19';
|
|
ERROR XAE08: XAER_DUPID: The XID already exists
|
|
XA ROLLBACK 'trx_19';
|
|
SELECT * FROM t;
|
|
a
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
10
|
|
11
|
|
12
|
|
13
|
|
14
|
|
0
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
XA ROLLBACK 'trx_20';
|
|
ERROR XAE04: XAER_NOTA: Unknown XID
|
|
XA ROLLBACK 'trx_19';
|
|
ERROR XAE04: XAER_NOTA: Unknown XID
|
|
XA ROLLBACK 'trx_18';
|
|
ERROR XAE04: XAER_NOTA: Unknown XID
|
|
XA ROLLBACK 'trx_17';
|
|
ERROR XAE04: XAER_NOTA: Unknown XID
|
|
XA ROLLBACK 'trx_16';
|
|
ERROR XAE04: XAER_NOTA: Unknown XID
|
|
XA ROLLBACK 'trx_15';
|
|
ERROR XAE04: XAER_NOTA: Unknown XID
|
|
XA ROLLBACK 'trx_14';
|
|
ERROR XAE04: XAER_NOTA: Unknown XID
|
|
XA ROLLBACK 'trx_13';
|
|
ERROR XAE04: XAER_NOTA: Unknown XID
|
|
XA ROLLBACK 'trx_12';
|
|
ERROR XAE04: XAER_NOTA: Unknown XID
|
|
XA ROLLBACK 'trx_11';
|
|
ERROR XAE04: XAER_NOTA: Unknown XID
|
|
SET @@sql_log_bin = OFF;
|
|
CREATE TEMPORARY TABLE tmp1 (a int) ENGINE=innodb;
|
|
XA START 'trx1tmp';
|
|
INSERT INTO tmp1 SET a=1;
|
|
XA END 'trx1tmp';
|
|
XA PREPARE 'trx1tmp';
|
|
SET @@sql_log_bin = OFF;
|
|
CREATE TEMPORARY TABLE tmp1 (a int) ENGINE=innodb;
|
|
XA START 'trx2tmp';
|
|
INSERT INTO tmp1 SET a=1;
|
|
XA END 'trx2tmp';
|
|
XA PREPARE 'trx2tmp';
|
|
SET @@sql_log_bin = OFF;
|
|
CREATE TEMPORARY TABLE tmp1 (a int) ENGINE=innodb;
|
|
XA START 'trx3tmp';
|
|
INSERT INTO tmp1 SET a=1;
|
|
XA END 'trx3tmp';
|
|
XA PREPARE 'trx3tmp';
|
|
XA COMMIT 'trx1tmp';
|
|
ERROR XAE04: XAER_NOTA: Unknown XID
|
|
XA ROLLBACK 'trx1tmp';
|
|
ERROR XAE04: XAER_NOTA: Unknown XID
|
|
XA START 'trx1tmp';
|
|
ERROR XAE08: XAER_DUPID: The XID already exists
|
|
*** 3 prepared transactions must be in the list ***
|
|
XA RECOVER;
|
|
formatID gtrid_length bqual_length data
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
XA COMMIT 'trx1tmp';
|
|
KILL connection CONN_ID;
|
|
XA COMMIT 'trx3tmp';
|
|
XA START 'trx1ro1';
|
|
SELECT * from t ORDER BY a;
|
|
XA END 'trx1ro1';
|
|
XA PREPARE 'trx1ro1';
|
|
XA START 'trx2ro1';
|
|
SELECT * from t ORDER BY a;
|
|
XA END 'trx2ro1';
|
|
XA PREPARE 'trx2ro1';
|
|
XA START 'trx3ro1';
|
|
SELECT * from t ORDER BY a;
|
|
XA END 'trx3ro1';
|
|
XA PREPARE 'trx3ro1';
|
|
*** 4 prepared transactions must be in the list ***
|
|
XA RECOVER;
|
|
formatID gtrid_length bqual_length data
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
XA COMMIT 'trx1ro1';
|
|
KILL connection CONN_ID;
|
|
XA COMMIT 'trx3ro1';
|
|
XA START 'trx1ro2';
|
|
SELECT * from t ORDER BY a;
|
|
XA END 'trx1ro2';
|
|
XA PREPARE 'trx1ro2';
|
|
XA START 'trx2ro2';
|
|
SELECT * from t ORDER BY a;
|
|
XA END 'trx2ro2';
|
|
XA PREPARE 'trx2ro2';
|
|
XA START 'trx3ro2';
|
|
SELECT * from t ORDER BY a;
|
|
XA END 'trx3ro2';
|
|
XA PREPARE 'trx3ro2';
|
|
*** 5 prepared transactions must be in the list ***
|
|
XA RECOVER;
|
|
formatID gtrid_length bqual_length data
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
XA ROLLBACK 'trx1ro2';
|
|
KILL connection CONN_ID;
|
|
XA ROLLBACK 'trx3ro2';
|
|
XA START 'trx1empty1';
|
|
XA END 'trx1empty1';
|
|
XA PREPARE 'trx1empty1';
|
|
XA START 'trx2empty1';
|
|
XA END 'trx2empty1';
|
|
XA PREPARE 'trx2empty1';
|
|
XA START 'trx3empty1';
|
|
XA END 'trx3empty1';
|
|
XA PREPARE 'trx3empty1';
|
|
*** 6 prepared transactions must be in the list ***
|
|
XA RECOVER;
|
|
formatID gtrid_length bqual_length data
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
XA COMMIT 'trx1empty1';
|
|
KILL connection CONN_ID;
|
|
XA COMMIT 'trx3empty1';
|
|
XA START 'trx1empty2';
|
|
XA END 'trx1empty2';
|
|
XA PREPARE 'trx1empty2';
|
|
XA START 'trx2empty2';
|
|
XA END 'trx2empty2';
|
|
XA PREPARE 'trx2empty2';
|
|
XA START 'trx3empty2';
|
|
XA END 'trx3empty2';
|
|
XA PREPARE 'trx3empty2';
|
|
*** 7 prepared transactions must be in the list ***
|
|
XA RECOVER;
|
|
formatID gtrid_length bqual_length data
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
1 LEN1 LEN2 TRX_N
|
|
XA ROLLBACK 'trx1empty2';
|
|
KILL connection CONN_ID;
|
|
XA ROLLBACK 'trx3empty2';
|
|
XA START 'trx1unprepared';
|
|
INSERT INTO t set a=0;
|
|
XA END 'trx1unprepared';
|
|
INSERT INTO t set a=0;
|
|
ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the IDLE state
|
|
XA START 'trx1unprepared';
|
|
ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the IDLE state
|
|
XA START 'trx1unprepared';
|
|
ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the IDLE state
|
|
XA COMMIT 'trx1unprepared';
|
|
ERROR XAE04: XAER_NOTA: Unknown XID
|
|
SET @@binlog_format = 'STATEMENT';
|
|
XA START 'trx_0';
|
|
INSERT INTO t SET a=0;
|
|
XA END 'trx_0';
|
|
XA PREPARE 'trx_0';
|
|
SET @@binlog_format = 'STATEMENT';
|
|
SET @@binlog_format = 'ROW';
|
|
XA START 'trx_1';
|
|
INSERT INTO t SET a=1;
|
|
XA END 'trx_1';
|
|
XA PREPARE 'trx_1';
|
|
SET @@binlog_format = 'STATEMENT';
|
|
XA START 'trx_2';
|
|
INSERT INTO t SET a=2;
|
|
XA END 'trx_2';
|
|
XA PREPARE 'trx_2';
|
|
SET @@binlog_format = 'STATEMENT';
|
|
SET @@binlog_format = 'ROW';
|
|
XA START 'trx_3';
|
|
INSERT INTO t SET a=3;
|
|
XA END 'trx_3';
|
|
XA PREPARE 'trx_3';
|
|
SET @@binlog_format = 'STATEMENT';
|
|
XA START 'trx_4';
|
|
INSERT INTO t SET a=4;
|
|
XA END 'trx_4';
|
|
XA PREPARE 'trx_4';
|
|
SET @@binlog_format = 'STATEMENT';
|
|
SET @@binlog_format = 'ROW';
|
|
XA START 'trx_5';
|
|
INSERT INTO t SET a=5;
|
|
XA END 'trx_5';
|
|
XA PREPARE 'trx_5';
|
|
SET @@binlog_format = 'STATEMENT';
|
|
XA START 'trx_6';
|
|
INSERT INTO t SET a=6;
|
|
XA END 'trx_6';
|
|
XA PREPARE 'trx_6';
|
|
SET @@binlog_format = 'STATEMENT';
|
|
SET @@binlog_format = 'ROW';
|
|
XA START 'trx_7';
|
|
INSERT INTO t SET a=7;
|
|
XA END 'trx_7';
|
|
XA PREPARE 'trx_7';
|
|
SET @@binlog_format = 'STATEMENT';
|
|
XA START 'trx_8';
|
|
INSERT INTO t SET a=8;
|
|
XA END 'trx_8';
|
|
XA PREPARE 'trx_8';
|
|
SET @@binlog_format = 'STATEMENT';
|
|
SET @@binlog_format = 'ROW';
|
|
XA START 'trx_9';
|
|
INSERT INTO t SET a=9;
|
|
XA END 'trx_9';
|
|
XA PREPARE 'trx_9';
|
|
SET @@binlog_format = 'STATEMENT';
|
|
XA START 'trx_10';
|
|
INSERT INTO t SET a=10;
|
|
XA END 'trx_10';
|
|
XA PREPARE 'trx_10';
|
|
SET @@binlog_format = 'STATEMENT';
|
|
SET @@binlog_format = 'ROW';
|
|
XA START 'trx_11';
|
|
INSERT INTO t SET a=11;
|
|
XA END 'trx_11';
|
|
XA PREPARE 'trx_11';
|
|
SET @@binlog_format = 'STATEMENT';
|
|
XA START 'trx_12';
|
|
INSERT INTO t SET a=12;
|
|
XA END 'trx_12';
|
|
XA PREPARE 'trx_12';
|
|
SET @@binlog_format = 'STATEMENT';
|
|
SET @@binlog_format = 'ROW';
|
|
XA START 'trx_13';
|
|
INSERT INTO t SET a=13;
|
|
XA END 'trx_13';
|
|
XA PREPARE 'trx_13';
|
|
SET @@binlog_format = 'STATEMENT';
|
|
XA START 'trx_14';
|
|
INSERT INTO t SET a=14;
|
|
XA END 'trx_14';
|
|
XA PREPARE 'trx_14';
|
|
SET @@binlog_format = 'STATEMENT';
|
|
SET @@binlog_format = 'ROW';
|
|
XA START 'trx_15';
|
|
INSERT INTO t SET a=15;
|
|
XA END 'trx_15';
|
|
XA PREPARE 'trx_15';
|
|
KILL CONNECTION CONN_ID;
|
|
SET @@binlog_format = 'STATEMENT';
|
|
XA START 'trx_16';
|
|
INSERT INTO t SET a=16;
|
|
XA END 'trx_16';
|
|
XA PREPARE 'trx_16';
|
|
KILL CONNECTION CONN_ID;
|
|
SET @@binlog_format = 'STATEMENT';
|
|
SET @@binlog_format = 'ROW';
|
|
XA START 'trx_17';
|
|
INSERT INTO t SET a=17;
|
|
XA END 'trx_17';
|
|
XA PREPARE 'trx_17';
|
|
KILL CONNECTION CONN_ID;
|
|
SET @@binlog_format = 'STATEMENT';
|
|
XA START 'trx_18';
|
|
INSERT INTO t SET a=18;
|
|
XA END 'trx_18';
|
|
XA PREPARE 'trx_18';
|
|
KILL CONNECTION CONN_ID;
|
|
SET @@binlog_format = 'STATEMENT';
|
|
SET @@binlog_format = 'ROW';
|
|
XA START 'trx_19';
|
|
INSERT INTO t SET a=19;
|
|
XA END 'trx_19';
|
|
XA PREPARE 'trx_19';
|
|
KILL CONNECTION CONN_ID;
|
|
XA ROLLBACK 'trx_0';
|
|
XA ROLLBACK 'trx_1';
|
|
XA ROLLBACK 'trx_2';
|
|
XA ROLLBACK 'trx_3';
|
|
XA ROLLBACK 'trx_4';
|
|
XA COMMIT 'trx_5';
|
|
XA COMMIT 'trx_6';
|
|
XA COMMIT 'trx_7';
|
|
XA COMMIT 'trx_8';
|
|
XA COMMIT 'trx_9';
|
|
# Kill and restart
|
|
XA START 'new_trx_0';
|
|
INSERT INTO t SET a=0;
|
|
XA END 'new_trx_0';
|
|
XA PREPARE 'new_trx_0';
|
|
XA START 'new_trx_1';
|
|
INSERT INTO t SET a=1;
|
|
XA END 'new_trx_1';
|
|
XA PREPARE 'new_trx_1';
|
|
XA START 'new_trx_2';
|
|
INSERT INTO t SET a=2;
|
|
XA END 'new_trx_2';
|
|
XA PREPARE 'new_trx_2';
|
|
XA START 'new_trx_3';
|
|
INSERT INTO t SET a=3;
|
|
XA END 'new_trx_3';
|
|
XA PREPARE 'new_trx_3';
|
|
XA START 'new_trx_4';
|
|
INSERT INTO t SET a=4;
|
|
XA END 'new_trx_4';
|
|
XA PREPARE 'new_trx_4';
|
|
XA START 'new_trx_5';
|
|
INSERT INTO t SET a=5;
|
|
XA END 'new_trx_5';
|
|
XA PREPARE 'new_trx_5';
|
|
XA START 'new_trx_6';
|
|
INSERT INTO t SET a=6;
|
|
XA END 'new_trx_6';
|
|
XA PREPARE 'new_trx_6';
|
|
XA START 'new_trx_7';
|
|
INSERT INTO t SET a=7;
|
|
XA END 'new_trx_7';
|
|
XA PREPARE 'new_trx_7';
|
|
XA START 'new_trx_8';
|
|
INSERT INTO t SET a=8;
|
|
XA END 'new_trx_8';
|
|
XA PREPARE 'new_trx_8';
|
|
XA START 'new_trx_9';
|
|
INSERT INTO t SET a=9;
|
|
XA END 'new_trx_9';
|
|
XA PREPARE 'new_trx_9';
|
|
XA COMMIT 'new_trx_0';
|
|
XA COMMIT 'new_trx_1';
|
|
XA COMMIT 'new_trx_2';
|
|
XA COMMIT 'new_trx_3';
|
|
XA COMMIT 'new_trx_4';
|
|
XA COMMIT 'new_trx_5';
|
|
XA COMMIT 'new_trx_6';
|
|
XA COMMIT 'new_trx_7';
|
|
XA COMMIT 'new_trx_8';
|
|
XA COMMIT 'new_trx_9';
|
|
XA START 'trx_10';
|
|
ERROR XAE08: XAER_DUPID: The XID already exists
|
|
XA COMMIT 'trx_10';
|
|
XA START 'trx_11';
|
|
ERROR XAE08: XAER_DUPID: The XID already exists
|
|
XA COMMIT 'trx_11';
|
|
XA START 'trx_12';
|
|
ERROR XAE08: XAER_DUPID: The XID already exists
|
|
XA COMMIT 'trx_12';
|
|
XA START 'trx_13';
|
|
ERROR XAE08: XAER_DUPID: The XID already exists
|
|
XA COMMIT 'trx_13';
|
|
XA START 'trx_14';
|
|
ERROR XAE08: XAER_DUPID: The XID already exists
|
|
XA COMMIT 'trx_14';
|
|
XA START 'trx_15';
|
|
ERROR XAE08: XAER_DUPID: The XID already exists
|
|
XA ROLLBACK 'trx_15';
|
|
XA START 'trx_16';
|
|
ERROR XAE08: XAER_DUPID: The XID already exists
|
|
XA ROLLBACK 'trx_16';
|
|
XA START 'trx_17';
|
|
ERROR XAE08: XAER_DUPID: The XID already exists
|
|
XA ROLLBACK 'trx_17';
|
|
XA START 'trx_18';
|
|
ERROR XAE08: XAER_DUPID: The XID already exists
|
|
XA ROLLBACK 'trx_18';
|
|
XA START 'trx_19';
|
|
ERROR XAE08: XAER_DUPID: The XID already exists
|
|
XA ROLLBACK 'trx_19';
|
|
SELECT * FROM t;
|
|
a
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
10
|
|
11
|
|
12
|
|
13
|
|
14
|
|
0
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
10
|
|
11
|
|
12
|
|
13
|
|
14
|
|
0
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
XA ROLLBACK 'trx_20';
|
|
ERROR XAE04: XAER_NOTA: Unknown XID
|
|
XA ROLLBACK 'trx_19';
|
|
ERROR XAE04: XAER_NOTA: Unknown XID
|
|
XA ROLLBACK 'trx_18';
|
|
ERROR XAE04: XAER_NOTA: Unknown XID
|
|
XA ROLLBACK 'trx_17';
|
|
ERROR XAE04: XAER_NOTA: Unknown XID
|
|
XA ROLLBACK 'trx_16';
|
|
ERROR XAE04: XAER_NOTA: Unknown XID
|
|
XA ROLLBACK 'trx_15';
|
|
ERROR XAE04: XAER_NOTA: Unknown XID
|
|
XA ROLLBACK 'trx_14';
|
|
ERROR XAE04: XAER_NOTA: Unknown XID
|
|
XA ROLLBACK 'trx_13';
|
|
ERROR XAE04: XAER_NOTA: Unknown XID
|
|
XA ROLLBACK 'trx_12';
|
|
ERROR XAE04: XAER_NOTA: Unknown XID
|
|
XA ROLLBACK 'trx_11';
|
|
ERROR XAE04: XAER_NOTA: Unknown XID
|
|
XA START 'one_phase_trx_0';
|
|
INSERT INTO t SET a=0;
|
|
XA END 'one_phase_trx_0';
|
|
XA COMMIT 'one_phase_trx_0' ONE PHASE;
|
|
XA START 'one_phase_trx_1';
|
|
INSERT INTO t SET a=1;
|
|
XA END 'one_phase_trx_1';
|
|
XA COMMIT 'one_phase_trx_1' ONE PHASE;
|
|
XA START 'one_phase_trx_2';
|
|
INSERT INTO t SET a=2;
|
|
XA END 'one_phase_trx_2';
|
|
XA COMMIT 'one_phase_trx_2' ONE PHASE;
|
|
XA START 'one_phase_trx_3';
|
|
INSERT INTO t SET a=3;
|
|
XA END 'one_phase_trx_3';
|
|
XA COMMIT 'one_phase_trx_3' ONE PHASE;
|
|
XA START 'one_phase_trx_4';
|
|
INSERT INTO t SET a=4;
|
|
XA END 'one_phase_trx_4';
|
|
XA COMMIT 'one_phase_trx_4' ONE PHASE;
|
|
DROP TABLE t;
|
|
DROP VIEW v_processlist;
|
|
include/assert.inc [committed gno 131]
|
|
All transactions must be completed, to empty-list the following:
|
|
XA RECOVER;
|
|
formatID gtrid_length bqual_length data
|
|
CREATE TABLE t(a INT);
|
|
XA START 'xa1';
|
|
INSERT INTO t SET a = 1;
|
|
XA END 'xa1';
|
|
SET @@SESSION.pseudo_slave_mode=1;
|
|
ERROR HY000: The system variable pseudo_slave_mode cannot be set when there is an ongoing transaction.
|
|
XA PREPARE 'xa1';
|
|
# restart
|
|
XA ROLLBACK 'xa1';
|
|
XA START 'xa1';
|
|
INSERT INTO t SET a = 1;
|
|
XA END 'xa1';
|
|
XA PREPARE 'xa1';
|
|
SET @@SESSION.pseudo_slave_mode=1;
|
|
ERROR HY000: The system variable pseudo_slave_mode cannot be set when there is an ongoing transaction.
|
|
XA COMMIT 'xa1';
|
|
DROP TABLE t;
|
|
include/gtid_utils_end.inc
|