Arrow vector in Java(Scala) allocate byteBuffer error while read the bytes from Python pyarrow
- 主要言語
- Java
- スター
- 94
- フォーク
- 152
- 平均マージ
- 3日 16時間
- マージ済み PR(30日)
- 11
説明
I am using scala arrow 1.0.1 and pyarrow 1.0.1
Following error occurs when scala decode the byte that encoded from python.
tried to downgrade pyarrow to 0.17.0, 0.14.1, error still exists.
This is a loop function to decode the same data repeatedly. The error occurs sometimes, after an error occurs, following code could still work correctly.
```
Error stack trace java.nio.ByteBuffer.allocate(ByteBuffer.java:334)
com.intel.analytics.zoo.shaded.arrow.vector.ipc.message.MessageSerializer.readMessage(MessageSerializer.java:692)
com.intel.analytics.zoo.shaded.arrow.vector.ipc.message.MessageChannelReader.readNext(MessageChannelReader.java:57)
com.intel.analytics.zoo.shaded.arrow.vector.ipc.ArrowStreamReader.readSchema(ArrowStreamReader.java:164)
com.intel.analytics.zoo.shaded.arrow.vector.ipc.ArrowReader.initialize(ArrowReader.java:170)
com.intel.analytics.zoo.shaded.arrow.vector.ipc.ArrowReader.ensureInitialized(ArrowReader.java:161)
com.intel.analytics.zoo.shaded.arrow.vector.ipc.ArrowReader.getVectorSchemaRoot(ArrowReader.java:63)
```
How to fix it?
**Reporter**: [Litchy Soong](https://issues.apache.org/jira/browse/ARROW-10341)
**Note**: *This issue was originally created as [ARROW-10341](https://issues.apache.org/jira/browse/ARROW-10341). Please see the [migration documentation](https://github.com/apache/arrow/issues/14542) for further details.*
コントリビューションガイド
調査の方向性
com.intel.analytics.zoo.shaded.arrow.vector.ipc.message.MessageSerializer.readMessage から開始し、MessageChannelReader.readNext と ArrowStreamReader.readSchema を経由してスタックを追跡します。Python pyarrow 1.0.1 でエンコードされたバイト列を Scala で繰り返し読み取り、断続的に発生する ByteBuffer の割り当て失敗に焦点を当てて再現します。繰り返しデコードが断続的に失敗しなくなれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- java, python, scala
- 領域
- data-engineering
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 25/100