apache / apache/arrow-java

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

未关闭
#346 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
Type: bug
主要语言
Java
星标
94
派生
152
平均合并
3 天 16 小时
30 天内合并 PR
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 摘要。