mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 04:53:01 +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
51 lines
1.3 KiB
Text
51 lines
1.3 KiB
Text
CREATE TABLE t1 (a INT) ENGINE=InnoDB;
|
|
# Test idle_transaction_timeout
|
|
connect c0,localhost,root,,test,,;
|
|
SHOW VARIABLES LIKE 'idle_%transaction_timeout';
|
|
Variable_name Value
|
|
idle_readonly_transaction_timeout 0
|
|
idle_readwrite_transaction_timeout 0
|
|
idle_transaction_timeout 0
|
|
SET autocommit=0;
|
|
SET idle_transaction_timeout=1;
|
|
BEGIN;
|
|
SELECT * FROM t1;
|
|
a
|
|
SELECT * FROM t1;
|
|
Got one of the listed errors
|
|
disconnect c0;
|
|
# Test idle_readonly_transaction_timeout
|
|
connect c1,localhost,root,,test,,;
|
|
SHOW VARIABLES LIKE 'idle_%transaction_timeout';
|
|
Variable_name Value
|
|
idle_readonly_transaction_timeout 0
|
|
idle_readwrite_transaction_timeout 0
|
|
idle_transaction_timeout 0
|
|
SET autocommit=0;
|
|
SET idle_readonly_transaction_timeout=1;
|
|
BEGIN;
|
|
SELECT * FROM t1;
|
|
a
|
|
SELECT * FROM t1;
|
|
Got one of the listed errors
|
|
disconnect c1;
|
|
# Test idle_readwrite_transaction_timeout
|
|
connect c2,localhost,root,,test,,;
|
|
SHOW VARIABLES LIKE 'idle_%transaction_timeout';
|
|
Variable_name Value
|
|
idle_readonly_transaction_timeout 0
|
|
idle_readwrite_transaction_timeout 0
|
|
idle_transaction_timeout 0
|
|
SET autocommit=0;
|
|
SET idle_readwrite_transaction_timeout=1;
|
|
BEGIN;
|
|
SELECT * FROM t1;
|
|
a
|
|
SELECT * FROM t1;
|
|
a
|
|
INSERT INTO t1 VALUES (1);
|
|
SELECT * FROM t1;
|
|
Got one of the listed errors
|
|
disconnect c2;
|
|
connection default;
|
|
DROP TABLE t1;
|