grpc-dotnet
grpc-dotnet copied to clipboard
INTERNAL: Internal error Rst Stream above okhttp 1.47.1 version
What version of gRPC-Java are you using? 1.47.1
What is your environment? for Android, grpc verison v1.47.1 Tested with Android 6 to Android 14
app client ManagedChannel = OkHttpChannelBuilder.forAddress(TLS_HOST, TLS_PORT) .overrideAuthority(TLS_HOST) .sslSocketFactory(socketFactory) .maxInboundMetadataSize(Integer.MAX_VALUE) .maxInboundMessageSize(20 * 1024 * 1024) .idleTimeout(2, TimeUnit.MINUTES) .build();
Server side .net 2.61.0
What did you expect to see? I expect to be able to reuse the same ManagedChannel for each grpc call. But it will somtimes fail and trigger INTERNAL: Internal error Rst Stream above okhttp 1.46.1 version (1.47.1 to 1.62.2). This error not happend below okhttp 1.46.1 version (1.35.0 to 1.46.1)
What did you see instead? INTERNAL: Internal error Rst Stream
On Android client side INTERNAL: Internal error Rst Stream|Status{code=INTERNAL, description=Internal error Rst Stream, cause=null}
On .net server side No error
https://github.com/grpc/grpc-java/issues/11051 is the companion bug for grpc-java. There's not much to go on for what could be causing this. I looked through the changes in grpc-java and nothing jumped out. What are the various things that could trigger a RST_STREAM(INTERNAL) in grpc-dotnet? Or is there logging that could be enabled?
You can enable server-side logging. Instructions here: https://learn.microsoft.com/en-us/aspnet/core/grpc/diagnostics?view=aspnetcore-8.0#grpc-services-logging
Getting full information about the HTTP error likely requires capturing most logs, e.g. trace level for Grpc
and Microsoft
logs (HTTP/2 runs in the underlying Microsoft Kestrel server).