apache / apache/arrow-java

[FlightRPC][Java] CallbackBackpressureStrategy should not rely on listener.isReady()

オープン
#346 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
Type: bug
主要言語
Java
スター
94
フォーク
152
平均マージ
3日 16時間
マージ済み PR(30日)
11

説明

According to the spec for , we can get into a state where the ready flag on the listener has already switched back to false by the time we execute the on ready handler.

We currently use the listener's ready flag after the ready handler to check if we received a spurious wake, but it's not reliable because of this. Instead we should use our own readiness flag that gets set within a synchronized block local to the CallbackBackpressureStrategy.

**Reporter**: [James Duong](https://issues.apache.org/jira/browse/ARROW-15876) / @jduo

**Note**: *This issue was originally created as [ARROW-15876](https://issues.apache.org/jira/browse/ARROW-15876). Please see the [migration documentation](https://github.com/apache/arrow/issues/14542) for further details.*

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

CallbackBackpressureStrategy と、issue にリンクされている CallStreamObserver setOnReadyHandler の仕様から始めてください。ready handler の後に listener の準備完了フラグがどのようにチェックされるかを追跡し、その後、完了処理がその listener フラグに依存しなくなり、strategy の同期された準備完了状態を使用することを確認してください。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
grpc, java
領域
api
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
52/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。