mariadb/mysql-test/t/transaction_timeout.test
Sergey Vojtovich af22a70df9 MDEV-11418 - AliSQL: [Feature] Issue#1 KILL IDLE TRANSACTIONS
Terminate idle transactions safely in server layer by setting up socket timeout
parameter. Percona provides another patch to resolve similar problem, but it
calls server layer's callback in InnoDB plugin to close THD, which crashes in
some testcases. See https://bugs.launchpad.net/percona-server/+bug/901060 for
more detailed information.

  1. export parameter trx_idle_timeout to handle all kinds of transactions, the priority is highest
  2. export parameter trx_readonly_idle_timeout to handle read-only transactions
  3. export parameter trx_changes_idle_timeout to handle read-write transactions
2017-03-22 19:08:24 +04:00

54 lines
1.1 KiB
Text

--source include/no_protocol.inc
--source include/have_innodb.inc
--source include/not_embedded.inc
CREATE TABLE t1 (a INT) ENGINE=InnoDB;
--echo # Test idle_transaction_timeout
connect (c0,localhost,root,,test,,);
SHOW VARIABLES LIKE 'idle_%transaction_timeout';
SET autocommit=0;
SET idle_transaction_timeout=1;
BEGIN;
SELECT * FROM t1;
sleep 2;
--error 2006,2013
SELECT * FROM t1;
disconnect c0;
--echo # Test idle_readonly_transaction_timeout
connect (c1,localhost,root,,test,,);
SHOW VARIABLES LIKE 'idle_%transaction_timeout';
SET autocommit=0;
SET idle_readonly_transaction_timeout=1;
BEGIN;
SELECT * FROM t1;
sleep 2;
--error 2006,2013 # Gone away
SELECT * FROM t1;
disconnect c1;
--echo # Test idle_readwrite_transaction_timeout
connect (c2,localhost,root,,test,,);
SHOW VARIABLES LIKE 'idle_%transaction_timeout';
SET autocommit=0;
SET idle_readwrite_transaction_timeout=1;
BEGIN;
SELECT * FROM t1;
sleep 2;
SELECT * FROM t1;
INSERT INTO t1 VALUES (1);
sleep 2;
--error 2006, 2013 # Gone away
SELECT * FROM t1;
disconnect c2;
connection default;
DROP TABLE t1;