mirror of
https://github.com/MariaDB/server.git
synced 2025-08-23 03:54:27 +03:00
innodb_buffer_pool_pages_total depends on page size. On Power8 it is 65k compared to 4k on Intel. As we round allocations on page size we may get slightly more memory for buffer pool. Sort XA RECOVER as rows order depend on endianness.
73 lines
1.8 KiB
Plaintext
73 lines
1.8 KiB
Plaintext
--source include/have_innodb.inc
|
|
# Bug #59641 Prepared XA transaction causes shutdown hang after a crash
|
|
|
|
-- source include/not_embedded.inc
|
|
# The server would issue this warning on restart.
|
|
call mtr.add_suppression("Found 3 prepared XA transactions");
|
|
|
|
# Close tables used by other tests (to not get crashed myisam tables)
|
|
flush tables;
|
|
|
|
CREATE TABLE t(a INT PRIMARY KEY, b INT)ENGINE=InnoDB;
|
|
INSERT INTO t VALUES(2,2),(4,4),(8,8),(16,16),(32,32);
|
|
COMMIT;
|
|
XA START '123';
|
|
INSERT INTO t VALUES(1,1);
|
|
XA END '123';
|
|
XA PREPARE '123';
|
|
|
|
CONNECT (con1,localhost,root,,);
|
|
CONNECTION con1;
|
|
|
|
XA START '456';
|
|
INSERT INTO t VALUES(3,47),(5,67);
|
|
UPDATE t SET b=2*b WHERE a BETWEEN 5 AND 8;
|
|
XA END '456';
|
|
XA PREPARE '456';
|
|
|
|
CONNECT (con2,localhost,root,,);
|
|
CONNECTION con2;
|
|
|
|
XA START '789';
|
|
UPDATE t SET b=4*a WHERE a=32;
|
|
XA END '789';
|
|
XA PREPARE '789';
|
|
|
|
CONNECT (con3,localhost,root,,);
|
|
CONNECTION con3;
|
|
|
|
# Kill the server without sending a shutdown command
|
|
-- exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
-- shutdown_server 0
|
|
-- source include/wait_until_disconnected.inc
|
|
|
|
# Restart the server.
|
|
-- exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
-- enable_reconnect
|
|
-- source include/wait_until_connected_again.inc
|
|
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
|
|
SELECT * FROM t;
|
|
COMMIT;
|
|
|
|
# Shut down the server. This would hang because of the bug.
|
|
-- exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
-- shutdown_server
|
|
-- source include/wait_until_disconnected.inc
|
|
|
|
# Restart the server.
|
|
-- exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
-- enable_reconnect
|
|
-- source include/wait_until_connected_again.inc
|
|
|
|
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
|
|
SELECT * FROM t;
|
|
COMMIT;
|
|
--sorted_result
|
|
XA RECOVER;
|
|
XA ROLLBACK '123';
|
|
XA ROLLBACK '456';
|
|
XA COMMIT '789';
|
|
SELECT * FROM t;
|
|
|
|
DROP TABLE t;
|