apache / apache/brpc

使用apisix作为网关, brpc作为grpc server, 只有链接的第一个请求可以成功, 后续报错终止链接

Open
#2,176 8 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
17.6k
Forks
4.1k
Avg merge
2d 12h
Merged PRs (30d)
69

Description

**Describe the bug (描述bug)**
报错: upstream sent invalid http2 table index: 63

**To Reproduce (复现方法)**
apisix作为grpc网关., brpc作为grpc server, 给apisix发送grpc请求即可复现

**Expected behavior (期望行为)**
正常返回请求, 而不是只有链接的第一个请求可以正确返回

**Versions (各种版本)**
OS: 公司测试机与自己的机器都可以复现, centos与ubuntu 一般的os都可以复现
Compiler: 同上
brpc: 新旧版本均可复现
protobuf: 同上

**Additional context/screenshots (更多上下文/截图)**

apisix日志
![image](https://user-images.githubusercontent.com/17529657/227089630-dd578167-ecb2-4fe0-bb38-77ddfb044ef4.png)

brpc client日志
![image](https://user-images.githubusercontent.com/17529657/227089710-af20d37f-df92-41b5-bb11-4155d6fb71e2.png)

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the APISIX gateway to brpc gRPC server setup described in the issue, then inspect the APISIX and brpc client logs for differences between the first and subsequent requests. Trace the HTTP/2 handling that produces “upstream sent invalid http2 table index: 63”; done means repeated gRPC requests return successfully instead of terminating the connection.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, grpc
Domain
backend-api-design, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.