apache / apache/arrow-java

Arrow vector in Java(Scala) allocate byteBuffer error while read the bytes from Python pyarrow

オープン
#321 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
Type: bug
主要言語
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, and I use a try catch block to include the code. And after an error occurs, following code could still work correctly, but after the first error occurs, following error would happen more frequently.
> 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-10342)

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

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

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

調査の方向性

まず、Python で生成したバイト列を使って、繰り返しデコードするループを再現し、次に ArrowReader と ArrowStreamReader から MessageChannelReader、MessageSerializer までスタックを追跡します。この issue ではソースファイルもテストも指定されていません。データを、断続的な ByteBuffer の割り当て失敗なしに繰り返しデコードできれば完了です。

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

評価

技術スタック
java, python, scala
領域
data-engineering
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

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

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