Current Path : /home/usr.opt/mysql57/mysql-test/r/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //home/usr.opt/mysql57/mysql-test/r/xa.result |
drop table if exists t1, t2; create table t1 (a int) engine=innodb; xa start 'test1'; insert t1 values (10); xa end 'test1'; xa prepare 'test1'; xa rollback 'test1'; select * from t1; a xa start 'test2'; xa start 'test-bad'; ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the ACTIVE state insert t1 values (20); xa prepare 'test2'; ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the ACTIVE state xa end 'test2'; xa prepare 'test2'; xa commit 'test2'; select * from t1; a 20 xa start 'testa','testb'; insert t1 values (30); commit; ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the ACTIVE state xa end 'testa','testb'; begin; ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the IDLE state create table t2 (a int); ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the IDLE state xa start 'testa','testb'; ERROR XAE08: XAER_DUPID: The XID already exists xa start 'testa','testb', 123; ERROR XAE08: XAER_DUPID: The XID already exists xa start 0x7465737462, 0x2030405060, 0xb; insert t1 values (40); xa end 'testb',' 0@P`',11; xa prepare 'testb',0x2030405060,11; start transaction; ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the PREPARED state xa recover; formatID gtrid_length bqual_length data 11 5 5 testb 0@P` xa prepare 'testa','testb'; xa recover; formatID gtrid_length bqual_length data 11 5 5 testb 0@P` 1 5 5 testatestb xa commit 'testb',0x2030405060,11; ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the PREPARED state xa rollback 'testb',0x2030405060,11; ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the PREPARED state xa rollback 'testa','testb'; xa commit 'testb',0x2030405060,11; ERROR XAE04: XAER_NOTA: Unknown XID xa rollback 'testb',0x2030405060,11; ERROR XAE04: XAER_NOTA: Unknown XID xa start 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz'; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 select * from t1; a 20 drop table t1; drop table if exists t1; create table t1(a int, b int, c varchar(20), primary key(a)) engine = innodb; insert into t1 values(1, 1, 'a'); insert into t1 values(2, 2, 'b'); xa start 'a','b'; update t1 set c = 'aa' where a = 1; xa start 'a','c'; update t1 set c = 'bb' where a = 2; update t1 set c = 'bb' where a = 2; update t1 set c = 'aa' where a = 1; ERROR 40001: Deadlock found when trying to get lock; try restarting transaction select count(*) from t1; ERROR XA102: XA_RBDEADLOCK: Transaction branch was rolled back: deadlock was detected xa end 'a','c'; ERROR XA102: XA_RBDEADLOCK: Transaction branch was rolled back: deadlock was detected xa rollback 'a','c'; xa start 'a','c'; drop table t1; # # BUG#51342 - more xid crashing # CREATE TABLE t1(a INT) ENGINE=InnoDB; XA START 'x'; SET SESSION autocommit=0; INSERT INTO t1 VALUES(1); SET SESSION autocommit=1; ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the ACTIVE state SELECT @@autocommit; @@autocommit 0 INSERT INTO t1 VALUES(1); XA END 'x'; XA COMMIT 'x' ONE PHASE; DROP TABLE t1; SET SESSION autocommit=1; End of 5.0 tests xa start 'a'; xa end 'a'; xa rollback 'a'; xa start 'a'; xa end 'a'; xa rollback 'a'; xa start 'a'; xa end 'a'; xa prepare 'a'; xa commit 'a'; xa start 'a'; xa end 'a'; xa prepare 'a'; xa commit 'a'; CREATE TABLE t1(a INT, KEY(a)) ENGINE=InnoDB; INSERT INTO t1 VALUES(1),(2); BEGIN; UPDATE t1 SET a=3 WHERE a=1; BEGIN; UPDATE t1 SET a=4 WHERE a=2; UPDATE t1 SET a=5 WHERE a=2; UPDATE t1 SET a=5 WHERE a=1; ERROR 40001: Deadlock found when trying to get lock; try restarting transaction ROLLBACK; ROLLBACK; BEGIN; UPDATE t1 SET a=3 WHERE a=1; XA START 'xid1'; UPDATE t1 SET a=4 WHERE a=2; UPDATE t1 SET a=5 WHERE a=2; UPDATE t1 SET a=5 WHERE a=1; ERROR 40001: Deadlock found when trying to get lock; try restarting transaction XA END 'xid1'; ERROR XA102: XA_RBDEADLOCK: Transaction branch was rolled back: deadlock was detected XA ROLLBACK 'xid1'; XA START 'xid1'; XA END 'xid1'; XA ROLLBACK 'xid1'; DROP TABLE t1; # # Bug#56448 Assertion failed: ! is_set() with second xa end # XA START 'x'; XA END 'x'; XA END 'x'; ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the IDLE state XA PREPARE 'x'; XA PREPARE 'x'; ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the PREPARED state XA ROLLBACK 'x'; # # Bug#59986 Assert in Diagnostics_area::set_ok_status() for XA COMMIT # DROP TABLE IF EXISTS t1; CREATE TABLE t1(a INT, b INT, PRIMARY KEY(a)) engine=InnoDB; INSERT INTO t1 VALUES (1, 1), (2, 2); # Connection con1 XA START 'a'; UPDATE t1 SET b= 3 WHERE a=1; # Connection default XA START 'b'; UPDATE t1 SET b=4 WHERE a=2; # Sending: UPDATE t1 SET b=5 WHERE a=1; # Connection con1 UPDATE t1 SET b=6 WHERE a=2; ERROR 40001: Deadlock found when trying to get lock; try restarting transaction XA COMMIT 'a'; ERROR XA102: XA_RBDEADLOCK: Transaction branch was rolled back: deadlock was detected # Connection default # Reaping: UPDATE t1 SET b=5 WHERE a=1 XA END 'b'; XA ROLLBACK 'b'; DROP TABLE t1; # # Bug#11766752 59936: multiple xa assertions - transactional # statement fuzzer # CREATE TABLE t1 (a INT) engine=InnoDB; XA START 'a'; INSERT INTO t1 VALUES (1); SAVEPOINT savep; XA END 'a'; SELECT * FROM t1; ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the IDLE state INSERT INTO t1 VALUES (2); ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the IDLE state SAVEPOINT savep; ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the IDLE state SET @a=(SELECT * FROM t1); ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the IDLE state XA PREPARE 'a'; SELECT * FROM t1; ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the PREPARED state INSERT INTO t1 VALUES (2); ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the PREPARED state SAVEPOINT savep; ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the PREPARED state SET @a=(SELECT * FROM t1); ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the PREPARED state UPDATE t1 SET a=1 WHERE a=2; ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the PREPARED state XA COMMIT 'a'; SELECT * FROM t1; a 1 DROP TABLE t1; # # Bug#12352846 - TRANS_XA_START(THD*): # ASSERTION THD->TRANSACTION.XID_STATE.XID.IS_NULL() # FAILED # DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 (a INT) ENGINE=InnoDB; CREATE TABLE t2 (a INT) ENGINE=InnoDB; START TRANSACTION; INSERT INTO t1 VALUES (1); # Connection con2 XA START 'xid1'; # Sending: INSERT INTO t2 SELECT a FROM t1; # Connection default # Waiting for until a transaction with 'INSERT SELECT' # will be locked inside innodb subsystem. DELETE FROM t1; # Connection con2 # Reaping: INSERT INTO t2 SELECT a FROM t1 ERROR 40001: Deadlock found when trying to get lock; try restarting transaction XA COMMIT 'xid1'; ERROR XA102: XA_RBDEADLOCK: Transaction branch was rolled back: deadlock was detected # Connection default COMMIT; # Connection con2 XA START 'xid1'; XA END 'xid1'; XA PREPARE 'xid1'; XA ROLLBACK 'xid1'; # Connection default DROP TABLE t1, t2; # # Bug#14670465 PLEASE PRINT HUMAN READABLE, ESCAPED # XID DATA IN XA RECOVER OUTPUT # # # xa Recover command was not diplaying non printable ASCII # characters in the XID previosuly. Now there is another column # in the result set which is a Hex Encoded String of the XID. # # Check that XIDs which are not normally printable are displayed # in readable format when CONVERT XID clause is used. xa start 0xABCDEF1234567890, 0x01, 0x02 ; xa end 0xABCDEF1234567890, 0x01, 0x02 ; xa prepare 0xABCDEF1234567890, 0x01, 0x02 ; xa recover convert xid; formatID gtrid_length bqual_length data 2 8 1 0xABCDEF123456789001 11 5 5 0x74657374622030405060 xa rollback 0xABCDEF1234567890, 0x01, 0x02 ; # Check that XID which has only printable characters are displayed # correctly without using of CONVERT XID clause xa start 0x4142434445, 0x46, 0x02 ; xa end 0x4142434445, 0x46, 0x02 ; xa prepare 0x4142434445, 0x46, 0x02 ; xa recover; formatID gtrid_length bqual_length data 2 5 1 ABCDEF 11 5 5 testb 0@P` xa rollback 0x4142434445, 0x46, 0x02 ; # # WL#7155: Test 1: check that if a thread of control terminates then # the Resource Manager dissociate and rollback any associated # transaction branch (see ref. 3.6 on page 18 of XA spec) # CREATE TABLE t1 (a INT) ENGINE=INNODB; XA START 'xid1'; INSERT INTO t1 VALUES (1); XA END 'xid1'; SELECT * FROM t1; a DROP TABLE t1; # # WL#7155: Test 2: Check that if the Resource Manager is doing work outside # any global transaction on behalf of the application, # xa_start() returns XAER_OUTSIDE (see xa_start description on page 52 of XA spec) # SET SESSION autocommit=0; START TRANSACTION; XA START 'xid1'; ERROR XAE09: XAER_OUTSIDE: Some work is done outside global transaction COMMIT; # # WL#7155: Test 3: Check that the Resource Manager returns error # if the Transaction Manager tries to resume non-existent transaction. # XA START 'xid1' RESUME; ERROR XAE05: XAER_INVAL: Invalid arguments (or unsupported command) # # WL#7155: Test 4: Check that the Resource Manager returns ok # if the Transaction Manager tries to resume transaction # that has been ended before. # XA START 'xid1'; XA END 'xid1'; XA START 'xid1' RESUME; XA END 'xid1'; # # WL#7155: Test 5: Check that the Resource Manager returns error # if the Transaction Manager ends some XA transaction and # starts another one with RESUME clause right after that. # XA START 'xid1'; XA END 'xid1'; XA START 'xid2' RESUME; ERROR XAE04: XAER_NOTA: Unknown XID # # WL#7155: Test 6: Check that the SUSPEND clause isn't supported for XA END. # XA START 'xid1'; XA END 'xid1' SUSPEND; ERROR XAE05: XAER_INVAL: Invalid arguments (or unsupported command) XA END 'xid1'; # # WL#7155: Test 7: Check that attempt to end non-existent XA transaction # while another XA transaction is active leads to an error # XA START 'xid1'; XA END 'xid2'; ERROR XAE04: XAER_NOTA: Unknown XID XA END 'xid1'; # # WL#7155: Test 8: Check that XA ROLLBACK can't be called for active XA transaction # XA START 'xid1'; XA ROLLBACK 'xid1'; ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the ACTIVE state XA END 'xid1'; # # WL#7155: Test 9: Check that XA PREPARE returns error for unknown xid # XA START 'xid1'; XA END 'xid1'; XA PREPARE 'xid2'; ERROR XAE04: XAER_NOTA: Unknown XID # # WL#7155: Test 10: Check that rollback of XA transaction with unknown xid # leads to an error when there is other prepared XA transaction. # XA START 'xid1'; XA END 'xid1'; XA PREPARE 'xid1'; XA ROLLBACK 'xid2'; ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the PREPARED state XA ROLLBACK 'xid1'; # # Bug#18107853 - XA LIST GETS CORRUPT, CRASH AND/OR HANG AND/OR ASSERTION # # Check that the server reports an error in case of too long input value of # format ID overflows the type of unsigned long XA START '1', 0x01, 18446744073709551615; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '18446744073709551615' at line 1 # # Bug#25364178 - XA PREPARE INCONSISTENT WITH XTRABACKUP # # Check XA state when lock_wait_timeout happens # More tests added to flush_read_lock.test set session lock_wait_timeout=1; create table asd (a int); xa start 'test1'; insert into asd values(1); xa end 'test1'; flush table with read lock; # PREPARE error will do auto rollback. xa prepare 'test1'; ERROR HY000: Lock wait timeout exceeded; try restarting transaction show errors; Level Code Message Error 1205 Lock wait timeout exceeded; try restarting transaction Error 1402 XA_RBROLLBACK: Transaction branch was rolled back unlock tables; xa start 'test1'; insert into asd values(1); xa end 'test1'; xa prepare 'test1'; flush tables with read lock; # LOCK error during ROLLBACK will not alter transaction state. xa rollback 'test1'; ERROR HY000: Lock wait timeout exceeded; try restarting transaction show errors; Level Code Message Error 1205 Lock wait timeout exceeded; try restarting transaction Error 1401 XAER_RMERR: Fatal error occurred in the transaction branch - check your data for consistency xa recover; formatID gtrid_length bqual_length data 1 5 0 test1 11 5 5 testb 0@P` # LOCK error during COMMIT will not alter transaction state. xa commit 'test1'; ERROR HY000: Lock wait timeout exceeded; try restarting transaction show errors; Level Code Message Error 1205 Lock wait timeout exceeded; try restarting transaction Error 3197 The resource manager is not able to commit the transaction branch at this time. Please retry later. xa recover; formatID gtrid_length bqual_length data 1 5 0 test1 11 5 5 testb 0@P` unlock tables; xa rollback 'test1'; xa recover; formatID gtrid_length bqual_length data 11 5 5 testb 0@P` drop table asd; There should be practically no error, but in theory XAER_NOTA: Unknown XID can be returned if con1 disconnection took for too long. todo: consider to make this test dependent on P_S if todo: such case will be ever registered. xa rollback 'testb',0x2030405060,11; XA RECOVER; formatID gtrid_length bqual_length data