Add protection against concurrent Readers
- 主要语言
- Go
- 星标
- 5.5k
- 派生
- 376
- PR 合并指标
- 30 天内没有已合并 PR
描述
During my use of the library(server and client both v1.8.7), the server occasionally receives the following prompt,
```
failed to get reader: received header with unexpected rsv bits set: false:true:true
```
which seems to be related to this part of the code.
**write.go** L300:
```
c.writeHeader.rsv1 = false
if flate && (opcode == opText || opcode == opBinary) {
c.writeHeader.rsv1 = true
}
```
Could you please confirm if it is necessary to add the following code here?
```
c.writeHeader.rsv1 = false
c.writeHeader.rsv2 = false
c.writeHeader.rsv3 = false
```
贡献指南
这个仓库没有索引到贡献指南
调研方向
从 write.go 第 300 行附近开始,跟踪并发读取器或写入器处于活动状态时 writeHeader.rsv1、rsv2 和 rsv3 是如何设置的。使用报告的 unexpected RSV-bits error 作为失败信号。当并发读取器场景不再产生无效的 RSV bits,并且在 repository 具有适当的测试入口点时有覆盖该行为的回归测试,即可视为完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- go
- 领域
- networking
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 42/100