mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
af22a70df9
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
54 lines
1.1 KiB
Text
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;
|