MySQL Forums
Forum List  »  Newbie

System.Net.Sockets.SocketException (104): Connection reset by peer
Posted by: Matthew Finlay
Date: October 31, 2023 10:40PM

Hi,

I am intermittently getting the following error when using version 8.0.33 of the MySql.Data nuget package in a c# Azure function which communicates with an azure hosted MySql Database.

MySql.Data.MySqlClient.MySqlException (0x80004005): Fatal error encountered during command execution.
---> System.IO.IOException: Unable to write data to the transport connection: Connection reset by peer.
---> System.Net.Sockets.SocketException (104):
Connection reset by peer at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.CreateException(SocketError error, Boolean forAsyncThrow)
at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.SendAsyncForNetworkStream(Socket socket, CancellationToken cancellationToken)
at System.Net.Sockets.Socket.SendAsyncForNetworkStream(ReadOnlyMemory`1 buffer, SocketFlags socketFlags, CancellationToken cancellationToken)
at System.Net.Sockets.NetworkStream.WriteAsync(ReadOnlyMemory`1 buffer, CancellationToken cancellationToken)
at System.Net.Security.SslStream.WriteSingleChunk[TIOAdapter](TIOAdapter writeAdapter, ReadOnlyMemory`1 buffer)
at System.Net.Security.SslStream.WriteAsyncInternal[TIOAdapter](TIOAdapter writeAdapter, ReadOnlyMemory`1 buffer)
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
at System.Net.Security.SslStream.WriteAsyncInternal[TIOAdapter](TIOAdapter writeAdapter, ReadOnlyMemory`1 buffer)
at System.Net.Security.SslStream.WriteAsync(ReadOnlyMemory`1 buffer, CancellationToken cancellationToken)
at System.Net.Security.SslStream.WriteAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken)
at MySql.Data.MySqlClient.TimedStream.WriteAsync(Byte[] buffer, Int32 offset, Int32 count, Boolean execAsync)
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
at MySql.Data.MySqlClient.TimedStream.WriteAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken)
at MySql.Data.MySqlClient.MySqlStream.SendPacketAsync(MySqlPacket packet, Boolean execAsync)
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
at MySql.Data.MySqlClient.MySqlStream.SendPacketAsync(MySqlPacket packet, Boolean execAsync)
at MySql.Data.MySqlClient.NativeDriver.ExecutePacketAsync(MySqlPacket packetToExecute, Boolean execAsync)
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
at MySql.Data.MySqlClient.NativeDriver.ExecutePacketAsync(MySqlPacket packetToExecute, Boolean execAsync)
at MySql.Data.MySqlClient.NativeDriver.SendQueryAsync(MySqlPacket queryPacket, Boolean execAsync, Int32 paramsPosition)
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
at MySql.Data.MySqlClient.NativeDriver.SendQueryAsync(MySqlPacket queryPacket, Boolean execAsync, Int32 paramsPosition)
at MySql.Data.MySqlClient.Driver.SendQueryAsync(MySqlPacket p, Int32 paramsPosition, Boolean execAsync)
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
at MySql.Data.MySqlClient.Driver.SendQueryAsync(MySqlPacket p, Int32 paramsPosition, Boolean execAsync)
at MySql.Data.MySqlClient.Statement.ExecuteNextAsync(Boolean execAsync)
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
at MySql.Data.MySqlClient.Statement.ExecuteNextAsync(Boolean execAsync)
at MySql.Data.MySqlClient.PreparableStatement.ExecuteNextAsync(Boolean execAsync)
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
at MySql.Data.MySqlClient.PreparableStatement.ExecuteNextAsync(Boolean execAsync)
at MySql.Data.MySqlClient.Statement.ExecuteAsync(Boolean execAsync)
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
at MySql.Data.MySqlClient.Statement.ExecuteAsync(Boolean execAsync)
at MySql.Data.MySqlClient.PreparableStatement.ExecuteAsync(Boolean execAsync)
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
at MySql.Data.MySqlClient.PreparableStatement.ExecuteAsync(Boolean execAsync)
at MySql.Data.MySqlClient.MySqlCommand.ExecuteReaderAsync(CommandBehavior behavior, Boolean execAsync, CancellationToken cancellationToken)
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
at MySql.Data.MySqlClient.MySqlCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
at MySql.Data.MySqlClient.MySqlCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
at Shared.Helper.MySQLHelper.SelectAsync(String query, String database, String connStr, Dictionary`2 data, ILogger log)

I tried updating MySql.Data to version 8.2.0 in visual studio, but i ended up needing Assembly Binding Redirection for System.Diagnostics.DiagnosticSource and it seems that this is not possible in Azure Functions.

Any idea on what could be causing this? or how to resolve it?
Thanks!

Options: ReplyQuote


Subject
Written By
Posted
System.Net.Sockets.SocketException (104): Connection reset by peer
October 31, 2023 10:40PM


Sorry, only registered users may post in this forum.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.