coder / coder/websocket

Add protection against concurrent Readers

未关闭
#391 20 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
enhancement
主要语言
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

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。