connectrpc / conformance

Conformance test suite for Connect, gRPC, and gRPC-Web implementations.

Home Page:https://connectrpc.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Timeout test may cancel before server sends DEADLINE_EXCEEDED

drice-buf opened this issue · comments

The test cases:

  • Timeouts/HTTPVersion:2/Protocol:PROTOCOL_GRPC/Codec:CODEC_PROTO/Compression:COMPRESSION_GZIP/TLS:false/bidi-stream/full-duplex
  • Timeouts/HTTPVersion:2/Protocol:PROTOCOL_GRPC/Codec:CODEC_PROTO/Compression:COMPRESSION_IDENTITY/TLS:false/bidi-stream/full-duplex

are currently failing against my gRPC-Java server implementation) as follows:

FAILED: Timeouts/HTTPVersion:2/Protocol:PROTOCOL_GRPC/Codec:CODEC_PROTO/Compression:COMPRESSION_IDENTITY/TLS:false/bidi-stream/full-duplex:
actual error code 1 (canceled) does not match expected code 4 (deadline_exceeded)
---- HTTP Trace ----
request>     0.000ms POST http://:52863/connectrpc.conformance.v1.ConformanceService/BidiStream HTTP/1.1
request>             Accept-Encoding: identity
request>             Content-Type: application/grpc
request>             Grpc-Timeout: 199990u
request>             Te: trailers
request>             User-Agent: grpc-go-connect/1.15.0 (go1.22.0) connectconformance-referenceclient/v1.0.0-rc3
request>             X-Test-Case-Name: Timeouts/HTTPVersion:2/Protocol:PROTOCOL_GRPC/Codec:CODEC_PROTO/Compression:COMPRESSION_IDENTITY/TLS:false/bidi-stream/full-duplex
request>
request>     0.401ms message #1: prefix: flags=0, len=37
request>             message #1: data: 37/37 bytes
response<     4.125ms 200 OK
response<             Content-Type: application/grpc
response<             Grpc-Accept-Encoding: gzip
response<             Grpc-Encoding: identity
response<
request>   199.301ms canceled

It appears that the client cancels at 200ms while the server is still sleeping for 1500ms.

I've found the issue here in the connect-go runtime, which is what powers the reference client: connectrpc/connect-go#709