From: Bjorn Munch Date: March 29 2011 1:54pm Subject: bzr commit into mysql-5.5-mtr branch (bjorn.munch:3187) Bug#11753389 List-Archive: http://lists.mysql.com/commits/134169 X-Bug: 11753389 Message-Id: <201103291354.p2TDs8l6004583@khepri15.norway.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1116955050==" --===============1116955050== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///home/bm136801/my/disconn-55/ based on revid:bjorn.munch@stripped 3187 Bjorn Munch 2011-03-29 Bug #11753389 44823: MYSQLTEST "DISCONNECT" FUNCTION RETURNS BEFORE COMPLETING THE DISCONNECT Re-applied Philip's original patch, adding a "KILL CONNECTION_ID()" Added test case to mysqltest.test but with small delay since the fix is not perfect. Test wait_timeout had to be amended (it still fails though) modified: client/mysqltest.cc mysql-test/r/mysqltest.result mysql-test/t/mysqltest.test mysql-test/t/wait_timeout.test === modified file 'client/mysqltest.cc' --- a/client/mysqltest.cc 2011-03-22 14:40:25 +0000 +++ b/client/mysqltest.cc 2011-03-29 13:49:23 +0000 @@ -1209,6 +1209,16 @@ void close_connections() if (next_con->stmt) mysql_stmt_close(next_con->stmt); next_con->stmt= 0; + + /* + We issue the extra KILL in order to make sure that all connections + are truly gone before mysqltest exits and the next test starts. + */ + if (next_con->name_len > 0) + { + mysql_query(&next_con->mysql, "KILL CONNECTION_ID()"); + } + mysql_close(&next_con->mysql); if (next_con->util_mysql) mysql_close(next_con->util_mysql); @@ -5039,6 +5049,12 @@ void do_close_connection(struct st_comma mysql_stmt_close(con->stmt); con->stmt= 0; + /* + We issue the extra KILL in order to make sure the connection is truly + gone and removed from SHOW PROCESSLIST by the time we continue + with the execution of the script + */ + mysql_query(&con->mysql, "KILL CONNECTION_ID()"); mysql_close(&con->mysql); if (con->util_mysql) === modified file 'mysql-test/r/mysqltest.result' --- a/mysql-test/r/mysqltest.result 2011-01-11 14:15:25 +0000 +++ b/mysql-test/r/mysqltest.result 2011-03-29 13:49:23 +0000 @@ -529,6 +529,9 @@ connection default; connection con1; disconnect con1; connection default; +SHOW PROCESSLIST; +Id User Host db Command Time State Info +N root local test Query 0 NULL SHOW PROCESSLIST Output from mysqltest-x.inc Output from mysqltest-x.inc Output from mysqltest-x.inc === modified file 'mysql-test/t/mysqltest.test' --- a/mysql-test/t/mysqltest.test 2011-01-11 14:15:25 +0000 +++ b/mysql-test/t/mysqltest.test 2011-03-29 13:49:23 +0000 @@ -1748,6 +1748,15 @@ disconnect con1; connection default; --disable_connect_log +# Test that disconnected session is gone immediately +# Must add small delay, sometimes it's not immediate. +connect (con1,localhost,root,,); +disconnect con1; +connection default; +sleep 0.02; +--replace_column 1 N 3 local +SHOW PROCESSLIST; + # ---------------------------------------------------------------------------- # Test mysqltest arguments # ---------------------------------------------------------------------------- === modified file 'mysql-test/t/wait_timeout.test' --- a/mysql-test/t/wait_timeout.test 2010-10-19 11:54:28 +0000 +++ b/mysql-test/t/wait_timeout.test 2011-03-29 13:49:23 +0000 @@ -22,14 +22,13 @@ SET @@global.wait_timeout= 2; --echo disconnect default; disconnect default; -# Connect with another connection and reset counters +# Connect with another connection --disable_query_log connect (wait_con,localhost,root,,test,,); --echo connection wait_con; connection wait_con; SET SESSION wait_timeout=100; let $retries=300; -SET @aborted_clients= 0; --enable_query_log # Disable reconnect and do the query @@ -44,11 +43,12 @@ SELECT 1; --disable_query_log --echo connection wait_con; connection wait_con; -while (!`select @aborted_clients`) +let $aborted= 1; +while ($aborted == 1) { real_sleep 0.1; let $aborted_clients = `SHOW STATUS LIKE 'aborted_clients'`; - eval SET @aborted_clients= SUBSTRING('$aborted_clients', 16)+0; + let $aborted= `SELECT SUBSTRING('$aborted_clients', 16)`; dec $retries; if (!$retries) --===============1116955050== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/bjorn.munch@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: bjorn.munch@stripped # target_branch: file:///home/bm136801/my/disconn-55/ # testament_sha1: f598db2ed11adb1b6e07cc113a650921c56c860a # timestamp: 2011-03-29 15:54:08 +0200 # base_revision_id: bjorn.munch@stripped\ # uumiew4w7c0280bk # # Begin bundle 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 --===============1116955050==--