apache / apache/servicecomb-java-chassis
ProviderQpsFlowControlHandler不被执行的问题
- 主要言語
- Java
- スター
- 1.9k
- フォーク
- 814
- 平均マージ
- 8日 23時間
- マージ済み PR(30日)
- 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