| Server IP : 45.40.142.9 / Your IP : 216.73.216.250 Web Server : Apache System : Linux s45-40-142-9.secureserver.net 2.6.32-754.35.1.el6.x86_64 #1 SMP Sat Nov 7 12:42:14 UTC 2020 x86_64 User : bayspec ( 506) PHP Version : 5.6.40 Disable Function : NONE MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /proc/self/root/usr/share/mysql-test/t/ |
Upload File : |
############################################################################### --echo Bug#17283409 4-WAY DEADLOCK: ZOMBIES, PURGING BINLOGS, SHOW PROCESSLIST, --echo SHOW BINLOGS # After the fix for bug 17283409, We allow new connections while processing # 'SHOW PROCESSLIST' command. This test script is to prove that even though we # allow new connections to come in, 'SHOW PROCESSLIST' will not consider them, # hence there is no worry of 'SHOW PROCESSLIST' going into a infinite loop if # new connections are coming in continously. ############################################################################### --source include/have_debug_sync.inc --source include/count_sessions.inc --enable_connect_log connect(connection1,localhost,root,,test,$MASTER_MYPORT,); --connection default SET DEBUG_SYNC='before_copying_threads SIGNAL parked1 WAIT_FOR go'; --send SHOW PROCESSLIST --connection connection1 echo "Wait_for parked1"; SET DEBUG_SYNC='now WAIT_FOR parked1'; connect(connection2,localhost,root,,test,$MASTER_MYPORT,); connect(connection3,localhost,root,,test,$MASTER_MYPORT,); SET DEBUG_SYNC='now SIGNAL go'; --connection default # We are yet to copy threads when connection 2 and connection 3 joined the # system. So this will show all 4 connections ( default + connection 1,2,3). --replace_column 1 <Id> 3 <Host> 5 <Command> 6 <Time> 7 <State> 8 <Info> --reap # Test 2: To prove that connections which joined after copying thread will not # be entertained SET DEBUG_SYNC='after_copying_threads SIGNAL parked1 WAIT_FOR go'; --send SHOW PROCESSLIST --connection connection1 echo "Wait_for parked1"; SET DEBUG_SYNC='now WAIT_FOR parked1'; connect(connection4,localhost,root,,test,$MASTER_MYPORT,); connect(connection5,localhost,root,,test,$MASTER_MYPORT,); SET DEBUG_SYNC='now SIGNAL go'; --connection default # This will show 4 connections only ( default + connection 1,2,3 ). Connections # (connection4, connection 5) which entered after reading the first element # from the iterator will not be processed by show processlist. --replace_column 1 <Id> 3 <Host> 5 <Command> 6 <Time> 7 <State> 8 <Info> --reap #Now try the command once again. # This will show 6 connections ( default + connection 1,2,3,4,5 ) --replace_column 1 <Id> 3 <Host> 5 <Command> 6 <Time> 7 <State> 8 <Info> SHOW PROCESSLIST; --echo "Cleanup" # Reset DEBUG_SYNC SET DEBUG_SYNC='RESET'; --disconnect connection1 --disconnect connection2 --disconnect connection3 --disconnect connection4 --disconnect connection5 --disable_connect_log --source include/wait_until_count_sessions.inc