[Java] ArrowMessage failed to parse compressed grpc stream
- 主要語言
- Java
- 星號
- 94
- 分支
- 152
- 平均合併
- 3 天 16 小時
- 30 天內合併 PR
- 11
描述
InvalidProtocolBufferException will be thrown in ArrowMessage.frame if we use gzip compress in Grpc.
The reason is stream.available will still be 1 after we read compressed data. There should be another attempt read to change InflaterInputStream.reachEOF to be true, and make stream.available to be 0.
Thus we need check stream.available after read tag from stream.
**Reporter**: [Jackey Lee](https://issues.apache.org/jira/browse/ARROW-11177) / @jackylee-ch
#### PRs and other links:
- [GitHub Pull Request apache/arrow#9147](https://github.com/apache/arrow/pull/9147)
**Note**: *This issue was originally created as [ARROW-11177](https://issues.apache.org/jira/browse/ARROW-11177). Please see the [migration documentation](https://github.com/apache/arrow/issues/14542) for further details.*
貢獻指南
研究方向
從 ArrowMessage.frame 開始,檢查壓縮 gRPC 串流的 read-tag 處理,特別注意 stream.available 和 InvalidProtocolBufferException。查看連結的 PR #9147,並驗證 gzip 壓縮的輸入能夠成功解析,同時不會將串流過早視為 available。
由索引模型根據 Issue 內容生成。
評估
- 技術堆疊
- grpc, java
- 領域
- api, backend
- Issue 類型
- 缺陷
- 難度
- 3/5
- 預估耗時
- 1-2 天
- 活躍度
- 停滯
- 描述清晰度
- 描述清楚
- 新手友好度
- 15/100