diff options
author | He Zhenxing <zhenxing.he@sun.com> | 2008-12-25 17:53:24 +0800 |
---|---|---|
committer | He Zhenxing <zhenxing.he@sun.com> | 2008-12-25 17:53:24 +0800 |
commit | 2070da70924400b1a4b40c1baeb073978c13a2f3 (patch) | |
tree | 0c37201b5d23c3a2227a91816b347889847e9cec | |
parent | 2349c56f1cec668bb5f8bacd620ee5ca00acdbd5 (diff) | |
download | mariadb-git-2070da70924400b1a4b40c1baeb073978c13a2f3.tar.gz |
BUG#40704 main.events_restart fails sporadically in pushbuild: "server has gone away"
mysqltest command 'shutdown_server' is supposed to shutdown the server
and wait for it to be gone, and kill it when timeout. But because the
arguments passed to my_kill were in the wrong order, 'shutdown_server'
does not wait nor kill the server at all. So after 'shutdown_server',
the server is still running, and the server may still accepting
connections.
mysql-test/include/mtr_warnings.sql:
Suppress forcing close thread messages when server shuts down
mysql-test/include/restart_mysqld.inc:
wait_until_disconnected.inc is not required after fix shutdown_server command
-rw-r--r-- | client/mysqltest.cc | 6 | ||||
-rw-r--r-- | mysql-test/include/mtr_warnings.sql | 1 | ||||
-rw-r--r-- | mysql-test/include/restart_mysqld.inc | 3 |
3 files changed, 4 insertions, 6 deletions
diff --git a/client/mysqltest.cc b/client/mysqltest.cc index 1b866085c41..52953ba4618 100644 --- a/client/mysqltest.cc +++ b/client/mysqltest.cc @@ -4177,9 +4177,9 @@ void do_shutdown_server(struct st_command *command) /* Check that server dies */ while(timeout--){ - if (my_kill(0, pid) < 0){ + if (my_kill(pid, 0) < 0){ DBUG_PRINT("info", ("Process %d does not exist anymore", pid)); - break; + DBUG_VOID_RETURN; } DBUG_PRINT("info", ("Sleeping, timeout: %d", timeout)); my_sleep(1000000L); @@ -4187,7 +4187,7 @@ void do_shutdown_server(struct st_command *command) /* Kill the server */ DBUG_PRINT("info", ("Killing server, pid: %d", pid)); - (void)my_kill(9, pid); + (void)my_kill(pid, 9); DBUG_VOID_RETURN; diff --git a/mysql-test/include/mtr_warnings.sql b/mysql-test/include/mtr_warnings.sql index f9e572c1215..35aca648a71 100644 --- a/mysql-test/include/mtr_warnings.sql +++ b/mysql-test/include/mtr_warnings.sql @@ -102,6 +102,7 @@ INSERT INTO global_suppressions VALUES ("Failed to open log"), ("Failed to open the existing master info file"), ("Forcing shutdown of [0-9]* plugins"), + ("Forcing close of thread"), /* Due to timing issues, it might be that this warning diff --git a/mysql-test/include/restart_mysqld.inc b/mysql-test/include/restart_mysqld.inc index 30b6c7ce70f..0f363ff1ee3 100644 --- a/mysql-test/include/restart_mysqld.inc +++ b/mysql-test/include/restart_mysqld.inc @@ -9,9 +9,6 @@ EOF # it 10 seconds to die before zapping it shutdown_server 10; -# Check server is gone ---source include/wait_until_disconnected.inc - # Write file to make mysql-test-run.pl start up the server again --append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect restart |