apache / apache/servicecomb-java-chassis
ProviderQpsFlowControlHandler不被执行的问题
- 主要语言
- Java
- 星标
- 1.9k
- 派生
- 814
- 平均合并
- 8 天 23 小时
- 30 天内合并 PR
- 1
描述
当请求走到doInvoke时

由于在外部进行了++,导致handlerIndex已经是1了

此时放在handlerList中的首个是ProviderQpsFlowControlHandler

它的首行会判断invocation的hanlerIndex是否大于0,由于handlerIndex++放在入口前,且handlerIndex不能赋值初始值为-1,也没有其他途径修改值,所以进来这里的代码一定是大于0的,导致ProviderQpsFlowControlHandler可能永远不被执行

我在走读代码的时候看到了这么个情况,绞尽脑子没有想到缘由,可能不是bug,而是有什么其他设计,希望能够得到解答,万分感谢!
贡献指南
这个仓库没有索引到贡献指南
调研方向
从 doInvoke 开始,跟踪在到达 ProviderQpsFlowControlHandler 之前 handlerIndex 如何变化。阅读 handlerList 的排序和 handler 对 handlerIndex 的初始检查,然后确认在此路径中是否跳过了该 handler。完成的标准是记录预期设计,或提出一个有针对性的修复,并提供 handler 能够正确执行的证据。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- java
- 领域
- backend
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 需要澄清
- 新手友好度
- 25/100