apache / apache/arrow-java

[Java] Gandiva fails to build on M1 Mac

オープン
#178 コメント 3 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Java
スター
94
フォーク
152
平均マージ
3日 16時間
マージ済み PR(30日)
11

説明

### Describe the bug, including details regarding any error messages, version, and platform.

When building the Java JNI modules on M1
```
mvn \
-Darrow.cpp.build.dir=/java-dist/lib/ \
-Darrow.c.jni.dist.dir=/java-dist/lib/ \
-Parrow-jni clean install
```

.. we'll fail on the Gandiva module ..
```
...
[INFO] Arrow Gandiva ...................................... FAILURE [ 3.053 s]
[INFO] Arrow Java C Data Interface ........................ SKIPPED
[INFO] Arrow Java Dataset ................................. SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 04:34 min
[INFO] Finished at: 2023-07-27T17:17:21-04:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.xolstice.maven.plugins:protobuf-maven-plugin:0.6.1:compile (default) on project arrow-gandiva: Unable to resolve artifact: Missing:
[ERROR] ----------
[ERROR] 1) com.google.protobuf:protoc:exe:osx-aarch_64:3.20.3
[ERROR]
[ERROR] Try downloading the file manually from the project website.
[ERROR]
[ERROR] Then, install it using the command:
[ERROR] mvn install:install-file -DgroupId=com.google.protobuf -DartifactId=protoc -Dversion=3.20.3 -Dclassifier=osx-aarch_64 -Dpackaging=exe -Dfile=/path/to/file
[ERROR]
[ERROR] Alternatively, if you host your own repository you can deploy the file there:
[ERROR] mvn deploy:deploy-file -DgroupId=com.google.protobuf -DartifactId=protoc -Dversion=3.20.3 -Dclassifier=osx-aarch_64 -Dpackaging=exe -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]
[ERROR]
[ERROR] Path to dependency:
[ERROR] 1) org.apache.arrow.gandiva:arrow-gandiva:jar:13.0.0-SNAPSHOT
[ERROR] 2) com.google.protobuf:protoc:exe:osx-aarch_64:3.20.3
[ERROR]
[ERROR] ----------
[ERROR] 1 required artifact is missing.
[ERROR]
[ERROR] for artifact:
[ERROR] org.apache.arrow.gandiva:arrow-gandiva:jar:13.0.0-SNAPSHOT
[ERROR]
[ERROR] from the specified remote repositories:
[ERROR] apache.snapshots (https://repository.apache.org/snapshots, releases=false, snapshots=true),
[ERROR] central (https://repo.maven.apache.org/maven2, releases=true, snapshots=false)
```

Why? Gandiva uses protoc version `v3.20.3`, which doesn't have an osx-aarch64 build on maven[1]. If you check +/-1 from this version, there _is_ an osx-aarch64 build.

We can either:
1) Request the osx-aarch64 build be uploaded (assuming it wasn't broken or removed deliberately).
2) Upgrade protobuf. There are 263 new commits if we upgrade to the next incremental release[2].

I built Gandiva with protobuf `v3.21.0` and tests passed, but I haven't verified any farther than that.

[1] https://repo.maven.apache.org/maven2/com/google/protobuf/protoc/3.20.3/
[2] https://github.com/protocolbuffers/protobuf/compare/v3.20.3...v3.21.0

### Component(s)

Java

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

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

調査の方向性

issue に記載されている Maven コマンドと Arrow Gandiva Java モジュールから始め、次に Java JNI ビルド用に protoc 3.20.3 がどのように設定されているかを確認します。利用可能な protobuf バージョンを比較し、M1 Mac 上で Gandiva をビルドしてテストを実行することで、選択した変更を検証します。

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

評価

技術スタック
java
領域
build-system
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

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

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