Skip to content

MySqlConnection.OpenAsync() throws IndexOutOfRangeException #1116

@marton200472

Description

@marton200472

Software versions
MySqlConnector version: 2.1.2
Server type (MySQL, MariaDB, Aurora, etc.) and version: MariaDB 10.4.17
.NET version: .NET Standard 2.0

Describe the bug
MySqlConnection.OpenAsync() throws IndexOutOfRangeException.

Exception

{System.IndexOutOfRangeException: Index was outside the bounds of the array.
  at MySqlConnector.Protocol.PayloadData.get_HeaderByte () [0x00000] in /_/src/MySqlConnector/Protocol/PayloadData.cs:22 
  at MySqlConnector.Core.ServerSession.ReceiveReplyAsync (MySqlConnector.Protocol.Serialization.IOBehavior ioBehavior, System.Threading.CancellationToken cancellationToken) [0x00076] in /_/src/MySqlConnector/Core/ServerSession.cs:928 
  at MySqlConnector.Core.ServerSession.ReceiveAsync (MySqlConnector.Protocol.Serialization.IOBehavior ioBehavior, System.Threading.CancellationToken cancellationToken) [0x0000b] in /_/src/MySqlConnector/Core/ServerSession.cs:905 
  at MySqlConnector.Core.ServerSession.ConnectAsync (MySqlConnector.Core.ConnectionSettings cs, MySqlConnector.MySqlConnection connection, System.Int32 startTickCount, MySqlConnector.Core.ILoadBalancer loadBalancer, MySqlConnector.Protocol.Serialization.IOBehavior ioBehavior, System.Threading.CancellationToken cancellationToken) [0x0035a] in /_/src/MySqlConnector/Core/ServerSession.cs:441 
  at MySqlConnector.Core.ConnectionPool.ConnectSessionAsync (MySqlConnector.MySqlConnection connection, System.String logMessage, System.Int32 startTickCount, MySqlConnector.Protocol.Serialization.IOBehavior ioBehavior, System.Threading.CancellationToken cancellationToken) [0x000bc] in /_/src/MySqlConnector/Core/ConnectionPool.cs:363 
  at System.Threading.Tasks.ValueTask`1[TResult].get_Result () [0x0001b] in /Users/builder/jenkins/workspace/archive-mono/2020-02/android/release/external/corefx/src/Common/src/CoreLib/System/Threading/Tasks/ValueTask.cs:813 
  at MySqlConnector.Core.ConnectionPool.GetSessionAsync (MySqlConnector.MySqlConnection connection, System.Int32 startTickCount, MySqlConnector.Protocol.Serialization.IOBehavior ioBehavior, System.Threading.CancellationToken cancellationToken) [0x00519] in /_/src/MySqlConnector/Core/ConnectionPool.cs:94 
  at MySqlConnector.Core.ConnectionPool.GetSessionAsync (MySqlConnector.MySqlConnection connection, System.Int32 startTickCount, MySqlConnector.Protocol.Serialization.IOBehavior ioBehavior, System.Threading.CancellationToken cancellationToken) [0x00767] in /_/src/MySqlConnector/Core/ConnectionPool.cs:124 
  at System.Threading.Tasks.ValueTask`1[TResult].get_Result () [0x0001b] in /Users/builder/jenkins/workspace/archive-mono/2020-02/android/release/external/corefx/src/Common/src/CoreLib/System/Threading/Tasks/ValueTask.cs:813 
  at MySqlConnector.MySqlConnection.CreateSessionAsync (MySqlConnector.Core.ConnectionPool pool, System.Int32 startTickCount, System.Nullable`1[T] ioBehavior, System.Threading.CancellationToken cancellationToken) [0x00120] in /_/src/MySqlConnector/MySqlConnection.cs:915 
  at System.Threading.Tasks.ValueTask`1[TResult].get_Result () [0x0001b] in /Users/builder/jenkins/workspace/archive-mono/2020-02/android/release/external/corefx/src/Common/src/CoreLib/System/Threading/Tasks/ValueTask.cs:813 
  at MySqlConnector.MySqlConnection.OpenAsync (System.Nullable`1[T] ioBehavior, System.Threading.CancellationToken cancellationToken) [0x0012e] in /_/src/MySqlConnector/MySqlConnection.cs:406 
  at GanzkkautotoltoDBManager.Data.DatabaseManager.InsertDataRow (System.String brand, System.Boolean[] answers) [0x00041] in C:\Users\User\source\repos\GanzkkautotoltoDBManager\GanzkkautotoltoDBManager\GanzkkautotoltoDBManager\Data\DatabaseManager.cs:45 }

Code sample

MySqlConnection DBConnection=new MySqlConnection("Server= 10.0.2.2; Port= 3306; User= Kutato_1; Password= abcd; Database= ganzkkautotolto;");
await DBConnection.OpenAsync();

Expected behavior
I expected the method not to throw an exception.

Additional context
The synchronous version does not throw the exception.

Edit:
I am using Xamarin.Forms. Could the mono runtime cause the problem?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions