grpc interop: `custom_metadata` fails
Nobody has claimed this yet.
- Dominant language
- Scala
- Stars
- 5.3k
- Forks
- 494
- PR merge metrics
- No merged PRs in 30d
Description
```
/Users/stevej% ./go-grpc-interop-client -use_tls=false -server_port=60001 -test_case=custom_metadata
2017/01/25 13:34:35 Got the reply with type 0 len 0; want 0, 1
```
Server output
```
Jan 25, 2017 1:35:06 PM io.netty.handler.codec.http2.Http2FrameLogger log
INFO:
----------------OUTBOUND--------------------
[id: 0xac92d2f8, L:/127.0.0.1:60001 - R:/127.0.0.1:61505] SETTINGS: ack=false, settings={}
------------------------------------
Jan 25, 2017 1:35:06 PM io.netty.handler.codec.http2.Http2FrameLogger log
INFO:
----------------INBOUND--------------------
[id: 0xac92d2f8, L:/127.0.0.1:60001 - R:/127.0.0.1:61505] SETTINGS: ack=false, settings={}
------------------------------------
Jan 25, 2017 1:35:06 PM io.netty.handler.codec.http2.Http2FrameLogger log
INFO:
----------------OUTBOUND--------------------
[id: 0xac92d2f8, L:/127.0.0.1:60001 - R:/127.0.0.1:61505] SETTINGS: ack=true
------------------------------------
Jan 25, 2017 1:35:06 PM io.netty.handler.codec.http2.Http2FrameLogger log
INFO:
----------------INBOUND--------------------
[id: 0xac92d2f8, L:/127.0.0.1:60001 - R:/127.0.0.1:61505] WINDOW_UPDATE: streamId=0, windowSizeIncrement=983025
------------------------------------
Jan 25, 2017 1:35:06 PM io.netty.handler.codec.http2.Http2FrameLogger log
INFO:
----------------INBOUND--------------------
[id: 0xac92d2f8, L:/127.0.0.1:60001 - R:/127.0.0.1:61505] HEADERS: streamId=1, headers=DefaultHttp2Headers[:method: POST, :scheme: http, :path: /grpc.testing.TestService/UnaryCall, :authority: 127.0.0.1, content-type: application/grpc, user-agent: grpc-go/1.0, te: trailers, x-grpc-test-echo-initial: test_initial_metadata_value, x-grpc-test-echo-trailing-bin: CgsKCwoL], padding=0, endStream=false
------------------------------------
Jan 25, 2017 1:35:06 PM io.netty.handler.codec.http2.Http2FrameLogger log
INFO:
----------------INBOUND--------------------
[id: 0xac92d2f8, L:/127.0.0.1:60001 - R:/127.0.0.1:61505] DATA: streamId=1, padding=0, endStream=true, length=16, bytes=000000000b080010011a050800120100
------------------------------------
Jan 25, 2017 1:35:06 PM io.netty.handler.codec.http2.Http2FrameLogger log
INFO:
----------------OUTBOUND--------------------
[id: 0xac92d2f8, L:/127.0.0.1:60001 - R:/127.0.0.1:61505] HEADERS: streamId=1, headers=DefaultHttp2Headers[:status: 200], streamDependency=0, weight=16, exclusive=false, padding=0, endStream=false
------------------------------------
Jan 25, 2017 1:35:06 PM io.netty.handler.codec.http2.Http2FrameLogger log
INFO:
----------------OUTBOUND--------------------
[id: 0xac92d2f8, L:/127.0.0.1:60001 - R:/127.0.0.1:61505] DATA: streamId=1, padding=0, endStream=false, length=5, bytes=0000000000
------------------------------------
Jan 25, 2017 1:35:06 PM io.netty.handler.codec.http2.Http2FrameLogger log
INFO:
----------------OUTBOUND--------------------
[id: 0xac92d2f8, L:/127.0.0.1:60001 - R:/127.0.0.1:61505] HEADERS: streamId=1, headers=DefaultHttp2Headers[grpc-status: 0], streamDependency=0, weight=16, exclusive=false, padding=0, endStream=true
------------------------------------
Jan 25, 2017 1:35:06 PM io.netty.handler.codec.http2.Http2FrameLogger log
INFO:
----------------INBOUND--------------------
[id: 0xac92d2f8, L:/127.0.0.1:60001 - R:/127.0.0.1:61505] SETTINGS: ack=true
------------------------------------
Jan 25, 2017 1:35:06 PM com.twitter.finagle.buoyant.h2.netty4.Netty4DispatcherBase$$anonfun$loop$lzycompute$1$1 apply
ERROR: [S L:/127.0.0.1:60001 R:/127.0.0.1:61505] dispatcher failed
com.twitter.finagle.ChannelClosedException: ChannelException at remote address: /127.0.0.1:61505. Remote Info: Not Available```
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the `custom_metadata` case with `./go-grpc-interop-client -use_tls=false -server_port=60001 -test_case=custom_metadata` and compare the client result with the server's HTTP/2 logs. Trace the gRPC interop handling that produces the empty reply; done means this case returns the expected reply and completes without the logged dispatcher failure.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- grpc, scala
- Domain
- backend-api-design, networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100