summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorunknown <msvensson@neptunus.(none)>2006-02-16 12:02:38 +0100
committerunknown <msvensson@neptunus.(none)>2006-02-16 12:02:38 +0100
commitd430e2474fbffe05307d1a2b9697db6e43c8b211 (patch)
tree90ada62285927ff547b71f85b69ed2a228a4dfc1 /mysql-test
parent3c9952a1ae437eacb7f52a5e9519d63b410d4424 (diff)
downloadmariadb-git-d430e2474fbffe05307d1a2b9697db6e43c8b211.tar.gz
Bug#2845 client fails to reconnect if using TCP/IP
- Detect that connection to server has been broken in "net_clear". Since net_clear is always called before we send command to server, we can be sure that server has not received the command. mysql-test/r/wait_timeout.result: Update test result mysql-test/t/wait_timeout-master.opt: Decrease wait_timeout value to avoid unneccessary sleeps mysql-test/t/wait_timeout.test: Test that same error message is returned when disconnected regardless of connection is socket or TCP Decrease sleep times sql/net_serv.cc: Make "net_clear" detect if connection with server has been broken by performing a select. If the select returns that there are data to read but no data can be read, that means the connection is broken. Signal disconnected to "write" functions by setting error to 2.
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/r/wait_timeout.result8
-rw-r--r--mysql-test/t/wait_timeout-master.opt2
-rw-r--r--mysql-test/t/wait_timeout.test20
3 files changed, 27 insertions, 3 deletions
diff --git a/mysql-test/r/wait_timeout.result b/mysql-test/r/wait_timeout.result
index 56232e481c0..683986abf5d 100644
--- a/mysql-test/r/wait_timeout.result
+++ b/mysql-test/r/wait_timeout.result
@@ -6,3 +6,11 @@ ERROR HY000: MySQL server has gone away
select 3;
3
3
+select 1;
+1
+1
+select 2;
+ERROR HY000: MySQL server has gone away
+select 3;
+3
+3
diff --git a/mysql-test/t/wait_timeout-master.opt b/mysql-test/t/wait_timeout-master.opt
index 0ad622e9677..9e5c2289eb2 100644
--- a/mysql-test/t/wait_timeout-master.opt
+++ b/mysql-test/t/wait_timeout-master.opt
@@ -1 +1 @@
---wait-timeout=2
+--wait-timeout=1
diff --git a/mysql-test/t/wait_timeout.test b/mysql-test/t/wait_timeout.test
index 26f91569868..1c9efa7c07d 100644
--- a/mysql-test/t/wait_timeout.test
+++ b/mysql-test/t/wait_timeout.test
@@ -3,9 +3,25 @@
#
--disable_reconnect
select 1;
-# wait_timeout is 2, so we should get disconnected now
---sleep 5
+# wait_timeout is 1, so we should get disconnected now
+--sleep 2
+# When the connection is closed in this way, the error code should
+# be consistent see bug#2845 for an explanation
--error 2006
select 2;
--enable_reconnect
select 3;
+
+# Do the same test as above on a TCP connection
+connect (con1,127.0.0.1,root,,test,$MASTER_MYPORT,);
+--disable_reconnect
+select 1;
+# wait_timeout is 1, so we should get disconnected now
+--sleep 2
+# When the connection is closed in this way, the error code should
+# be consistent see bug#2845 for an explanation
+--error 2006
+select 2;
+--enable_reconnect
+select 3;
+disconnect con1;