grpc-dotnet icon indicating copy to clipboard operation
grpc-dotnet copied to clipboard

INTERNAL: Internal error Rst Stream above okhttp 1.47.1 version

Open polingsky opened this issue 4 months ago • 2 comments

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

polingsky avatar Mar 29 '24 01:03 polingsky

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?

ejona86 avatar Mar 29 '24 15:03 ejona86

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).

JamesNK avatar Mar 30 '24 05:03 JamesNK