Bug #55480 | Rexecuting tests a second time fails | ||
---|---|---|---|
Submitted: | 22 Jul 2010 13:47 | Modified: | 23 Jul 2010 20:02 |
Reporter: | Dirk Helbig | Email Updates: | |
Status: | Not a Bug | Impact on me: | |
Category: | MySQL Server | Severity: | S3 (Non-critical) |
Version: | 5.x | OS: | Windows (server: 2008 (64-bit) / client: xp (32-bit)) |
Assigned to: | Vladislav Vaintroub | CPU Architecture: | Any |
[22 Jul 2010 13:47]
Dirk Helbig
[22 Jul 2010 14:46]
Vladislav Vaintroub
Closing as not a bug. There is nothing Connector/NET specific that would cause this error. The error is returned "as is" from remote server. it might be helpful to examine why connections have failed (e.g what was the error returned by MySqlConnection.Open()). But until then, mysqladmin flush-hosts executed on server machine (as suggested in error text) will help to unblock a test client machine.
[23 Jul 2010 10:42]
Dirk Helbig
You can see the error returned by MySqlConnection.Open() in the description! But how can I find the cause of the problem? I've enabled complete logging but I can't find any hint. Maybe you can give me an advice.
[23 Jul 2010 11:00]
Vladislav Vaintroub
Dirk, the error returned in description is a followup error, which happens when "many" connections from the same host have failed . Server locks the offending machine (to prevent DoS attacks). The description of this error is given here http://dev.mysql.com/doc/refman/5.5/en/blocked-host.html I myself ran onto this error trying sysbench benchmark (which connects all clients at the same time) from laptop over WLAN, using several hundred sysbench users. I believe that in my case the error was that some clients were not able to respond to the server in a timely manner during authentication handshake. So I used mysqladmin to reenable the client machine, and reduced the number of clients. Hope this helps.
[23 Jul 2010 20:02]
Dirk Helbig
The problem was that I have made a connection-check with "TcpClient" to avoid using not existant server. Is there a better solution to check running remote server? The preferred way in some discussion forums with "telnet" is no useful as you can see.
[23 Jul 2010 20:59]
Vladislav Vaintroub
It is a question of attitude.. Instead of checking if I can connect, and then connect and do stuff, I'd just connect and do stuff (and try to proper handle errors when they arise). But basically, you have a better chance using any type of MySQL client , e.g Connector/NET. telnet won't be able to autheniticate properly, by connecting on the MySQL port and doing nothing, it will trick server into thinking that there is a client that does not want to authenticate, and, after connection timeout this attempt will count as error.