1

We have an application gateway configured in front of our web application on an Azure VM. We've been seeing regular ECONNRESET exceptions occurring that appear to be generated as a result of the default health probe. I can see every 30 seconds a couple of requests to 127.0.0.1. On a fairly regular basis (more than 20 instances in the last 24 hours) one of those requests results in a ECONNRESET exception per the output below:

17:10:35 [Information] () "Request starting HTTP/1.1 GET http://127.0.0.1/ " 17:10:35 [Information] () {"Connection":["Keep-Alive"],"Host":["127.0.0.1"],"Max-Forwards":["10"]} 17:10:35 [Information] () Executing action method "HonestyBoxWeb.Controllers.HomeController.Index (HonestyBoxWeb)" with arguments (null) - ModelState is Valid 17:10:35 [Information] () Executing ViewResult, running view at path "/Views/Home/Index.cshtml". 17:10:35 [Information] () Executed action "HonestyBoxWeb.Controllers.HomeController.Index (HonestyBoxWeb)" in 2.8666ms 17:10:35 [Information] () "Request finished in 5.2758ms 200 text/html; charset=utf-8" 17:10:35 [Information] () Connection id ""0HLCE7PIFCIGH"" request processing ended abnormally. System.IO.IOException: Error -104 ECONNRESET connection reset by peer ---> Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.Networking.UvException: Error -104 ECONNRESET connection reset by peer at Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.LibuvOutputConsumer.<WriteOutputAsync>d__6.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.LibuvConnection.<Start>d__26.MoveNext() --- End of inner exception stack trace --- at Microsoft.AspNetCore.Server.Kestrel.Internal.System.IO.Pipelines.PipeCompletion.ThrowFailed() at Microsoft.AspNetCore.Server.Kestrel.Internal.System.IO.Pipelines.Pipe.GetResult(ReadResult& result) at Microsoft.AspNetCore.Server.Kestrel.Internal.System.IO.Pipelines.Pipe.Microsoft.AspNetCore.Server.Kestrel.Internal.System.IO.Pipelines.IReadableBufferAwaiter.GetResult() at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Frame`1.<ProcessRequestsAsync>d__2.MoveNext() 

So it looks like the healthcheck is posting a request and then resetting the connection. Am I interpreting that correctly and is there some way to resolve this?

1 Answer 1

0

This was an issue in the Kestrel server and has been resolved in dotnet core 2.1 release.

Ref: https://github.com/aspnet/KestrelHttpServer/issues/2540

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.