Current Path : /home/usr.opt/mysql57/mysql-test/r/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //home/usr.opt/mysql57/mysql-test/r/flush_read_lock_kill.result |
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';