apache / apache/arrow-java

[Java] ArrowMessage failed to parse compressed grpc stream

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

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

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