Very long delay when using SSH

Discussion of open issues, suggestions and bugs regarding ADO.NET provider for MySQL
Post Reply
Lars
Posts: 7
Joined: Sun 21 Sep 2008 05:38

Very long delay when using SSH

Post by Lars » Thu 18 Jun 2009 21:09

Hello,

When using SSH and trying to connect with an incorrect MySQL password, there is a 10 second delay before the "Access Denied" exception is thrown. If I do not use SSH, it is instant. Note that the SSH credentials are correct - it is only the MySQL password that is incorrect.

Our user authentication methods are all based on the user entering his credentials and the app then attempting to connect to MySQL using these credentials to verify if they are correct (=an Authentication Failure exception means he entered incorrect credentials). To have the app freeze up for 10 seconds every time credentials are mistyped is confusing and frustrating to the users.

Version: 5.0.22.

Exception that gets thrown too slowly with SSH:
InnerException: Devart.Data.MySql.MySqlException
Message="Access denied for user 'joe'@'10.1.1.202' (using password: YES)"
Source="Devart.Data.MySql"
ErrorCode=-2147467259
Code=1045
SqlState="28000"
StackTrace:
at Devart.Data.MySql.af.n()
at Devart.Data.MySql.af.c()
at Devart.Data.MySql.s.d(String A_0)
at Devart.Data.MySql.s.a(String A_0, String A_1, String A_2, String A_3, Int32 A_4, String A_5, Int32 A_6, SshOptions A_7, SslOptions A_8, ProxyOptions A_9, HttpOptions A_10)
at Devart.Data.MySql.MySqlInternalConnection.Connect(String userId, String password, String host, String database, Int32 port, Int32 connectionTimeout, MySqlProtocol protocol, Boolean compress, Boolean clientInteractive)
at Devart.Data.MySql.MySqlInternalConnection..ctor(o connectionOptions)
at Devart.Data.MySql.ao.a(p A_0, Object A_1, DbConnectionBase A_2)
at Devart.Common.DbConnectionFactory.a(DbConnectionPool A_0, p A_1)
at Devart.Common.DbConnectionPoolGroup.c(DbConnectionPool A_0)
at Devart.Common.DbConnectionPool.a()
at Devart.Common.DbConnectionPool.GetObject()
at Devart.Common.DbConnectionFactory.a(DbConnectionBase A_0)
at Devart.Common.DbConnectionClosed.Open(DbConnectionBase outerConnection)
at Devart.Common.DbConnectionBase.Open()
at Devart.Data.MySql.MySqlConnection.Open()
at Samys.DataAccessLayer.DbConnection.ExecuteScalar(IDbCommand command) in G:\devel\dotNet\Samys\DataAccessLayer\DbConnection.cs:line 85
InnerException:


Please look into this.

Thanks,
Lars

Shalex
Site Admin
Posts: 9543
Joined: Thu 14 Aug 2008 12:44

Post by Shalex » Fri 19 Jun 2009 15:04

I have checked the 5.0.22 version. You are right, there is a long delay. But the latest 5.20.33 version does not have this problem. Please try the latest version of dotConnect for MySQL and notify us about the results.

Lars
Posts: 7
Joined: Sun 21 Sep 2008 05:38

Post by Lars » Fri 19 Jun 2009 15:45

Ok. But I was hoping the new build that will take an SSH private key (not just user name and password) would be out by now (see my post from a little over two weeks ago). Since it is a lot of work to update (manually updating the references + license file in every project), it would ge great if I can kill two birds with one stone. Do you know if this new build will be released in the next few days, like was indidcated in the email in my other post?

By the way, is there any tool for making updating to new versions less painful? I.e. a tool that automatically recurses through a directory tree of source code and updates the DevArt references and license files? Something similar to what DevExpress have...

Thanks,
Lars

Shalex
Site Admin
Posts: 9543
Joined: Thu 14 Aug 2008 12:44

Post by Shalex » Mon 22 Jun 2009 08:21

You can use Upgrade Wizard for this purpose, it will change the references and the license.licx files.

One of the possible ways to eliminate the upgrade work is to set the Specific version property of the Devart.* assemblies to false and to exclude the version number from the license.licx files and leave the only entry there:
Devart.Data.MySql.MySqlConnection, Devart.Data.MySql.

Post Reply