File: flush_read_lock_kill.result

package info (click to toggle)
mysql-5.5 5.5.47-0%2Bdeb6u1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze-lts
  • size: 201,920 kB
  • ctags: 94,437
  • sloc: cpp: 646,401; ansic: 551,652; perl: 53,254; pascal: 25,099; yacc: 13,069; sh: 10,332; cs: 4,647; xml: 4,178; sql: 3,346; makefile: 1,361; lex: 639; awk: 54
file content (38 lines) | stat: -rw-r--r-- 1,148 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
DROP TABLE IF EXISTS t1;
SET DEBUG_SYNC= 'RESET';
CREATE TABLE t1 (kill_id INT) engine = InnoDB;
INSERT INTO t1 VALUES(connection_id());
# Switching to connection 'default'.
# Start transaction.
BEGIN;
INSERT INTO t1 VALUES(connection_id());
# Ensure that COMMIT will pause once it acquires protection
# against its global read lock.
SET DEBUG_SYNC='ha_commit_trans_after_acquire_commit_lock SIGNAL acquired WAIT_FOR go';
# Sending:
COMMIT;
# Switching to 'con1'.
# Wait till COMMIT acquires protection against global read
# lock and pauses.
SET DEBUG_SYNC='now WAIT_FOR acquired';
# Sending:
FLUSH TABLES WITH READ LOCK;
# Switching to 'con2'.
SELECT ((@id := kill_id) - kill_id) FROM t1 LIMIT 1;
((@id := kill_id) - kill_id)
0
# Wait till FLUSH TABLES WITH READ LOCK blocks due
# to active COMMIT
# Kill connection 'con1'.
KILL CONNECTION @id;
# Switching to 'con1'.
# Try to reap FLUSH TABLES WITH READ LOCK, 
# it fail due to killed statement and connection.
Got one of the listed errors
# Switching to 'con2'.
# Resume COMMIT.
SET DEBUG_SYNC='now SIGNAL go';
# Switching to 'default'.
# Reaping COMMIT.
DROP TABLE t1;
SET DEBUG_SYNC= 'RESET';