Closed alexeyzimarev closed 1 year ago
Describe the bug When the subscription drops, the latest client gets stuck in an exception loop, which prevents the application from doing anything like restoring the subscription.
To Reproduce Steps to reproduce the behavior:
Expected behavior When the subscription drops, the Dropped delegate is called, then the subscription stops working
Actual behavior The client keeps produces the following exception endlessly:
[15:46:29 ERR] Error starting gRPC call. <s:Grpc.Net.Client.Internal.GrpcCall>; System.Net.Http.HttpRequestException: Connection refused (localhost:2113) ---> System.Net.Sockets.SocketException (61): Connection refused at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token) at System.Net.Sockets.Socket.<ConnectAsync>g__WaitForConnectWithCancellation|277_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken) --- End of inner exception stack trace --- at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.AddHttp2ConnectionAsync(HttpRequestMessage request) at System.Threading.Tasks.TaskCompletionSourceWithCancellation`1.WaitWithCancellationAsync(CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.GetHttp2ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken) at System.Net.Http.DiagnosticsHandler.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken) at Grpc.Net.Client.Internal.GrpcCall`2.GetResponseHeadersCoreAsync()
Environment details are in the repro repository.
Actually, resubscribe works. It's just I haven't seen my own issue between those millions of log messages.
Describe the bug When the subscription drops, the latest client gets stuck in an exception loop, which prevents the application from doing anything like restoring the subscription.
To Reproduce Steps to reproduce the behavior:
Expected behavior When the subscription drops, the Dropped delegate is called, then the subscription stops working
Actual behavior The client keeps produces the following exception endlessly:
Environment details are in the repro repository.