-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ARROW-16584: [Java] Java JNI with S3 support #13157
Conversation
Thanks for opening a pull request! If this is not a minor PR. Could you open an issue for this pull request on JIRA? https://issues.apache.org/jira/browse/ARROW Opening JIRAs ahead of time contributes to the Openness of the Apache Arrow project. Then could you also rename pull request title in the following format?
or
See also: |
@github-actions crossbow submit java-jars |
Revision: 777e1ef Submitted crossbow builds: ursacomputing/crossbow @ actions-2091
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you also update ci/scripts/java_jni_macos_build.sh
?
Could you also follow #13157 (comment) ?
|
@github-actions crossbow submit java-jars |
Revision: df01c4b Submitted crossbow builds: ursacomputing/crossbow @ actions-2110
|
@kou do you think this can be backported to 8.x branch? |
It seems that we need to link AWS SDK C++ statically:
Could you add the following build option? diff --git a/ci/scripts/java_jni_macos_build.sh b/ci/scripts/java_jni_macos_build.sh
index e9572c334b..71a1730fce 100755
--- a/ci/scripts/java_jni_macos_build.sh
+++ b/ci/scripts/java_jni_macos_build.sh
@@ -76,6 +76,7 @@ cmake \
-DARROW_THRIFT_USE_SHARED=OFF \
-DARROW_UTF8PROC_USE_SHARED=OFF \
-DARROW_ZSTD_USE_SHARED=OFF \
+ -DAWSSDK_SOURCE=BUNDLE \
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_PREFIX=${build_dir} \ |
No. Generally, we backport only bug fixes. But we can discuss this on the
Generally, we release a new version each 3-4 months. 8.0.0 was released in 2022-05. So 9.0.0 will be released in 2022-08/09. FYI: We discussed release cycle recently: https://lists.apache.org/thread/g6mqpyq2hc11xbgrq2pf653njzy53plt |
df01c4b
to
ad62c6f
Compare
@kou @kszucs as a follow up from this issue, I can see we generate the jars on our nightly tests via the |
@github-actions crossbow submit java-jars |
Revision: ad62c6f Submitted crossbow builds: ursacomputing/crossbow @ actions-f6bd02cb91
|
@raulcd Right. We don't test the built jars for now. We should test them. We can add extra (GitHub Actions) jobs to https://github.com/apache/arrow/blob/master/dev/tasks/java-jars/github.yml to test the built jars on Linux and macOS. (We don't need to add extra Crossbow jobs.) I don't know much about JDK versions. Can we assume that the built jars with JDK 1.8 can work with all JDK >= 1.8? Or should we build jars for JDK X with JDK X? If we can assume that the built jars with JDK 1.8 can work with all JDK >= 1.8, we can just build jars only with JDK 1.8. (It may be better that we test the built jars with multiple JDK versions.) |
Could you rebase on master? It may resolve the java-jars build failure. |
ad62c6f
to
c2733b0
Compare
@kou I think it makes sense to test separately for Java 8 and Java 11. Java 11 has new features, so the bytecode could look different. I'm getting the following warning on Java 11 when running parquet reader locally:
If arrow java supports Java 17, it has to be tested separately as well because of the following change in JDK 17: https://openjdk.java.net/jeps/403
|
@github-actions crossbow submit java-jars |
Revision: c2733b0 Submitted crossbow builds: ursacomputing/crossbow @ actions-04af25fddc
|
Thanks for the warning information! Then we should test with multiple JDK versions. |
I have created https://issues.apache.org/jira/browse/ARROW-16640 to track what we discussed about testing the jars and extend to other JDKs. Thanks! |
@kou what are the next steps to make this PR ready? |
We need to fix the https://github.com/ursacomputing/crossbow/runs/6547084325?check_suite_focus=true failure. |
@kou the error is the same as in previous java-jars:
|
53a8006
to
d482759
Compare
I've tried to add BUILD_SHARED_LIBS (related to aws/aws-sdk-cpp#1334 (comment))
but getting the same error:
I can see those simbols in libarrow.a, for example, GetObjectAttributes:
It is in the source code: S3Client.h#L2563 and S3Client.cpp#L1917 but cannot be found in the symbols:
@kou any thoughts? brew's version for aws-sdk-cpp is 1.9.300 |
@github-actions crossbow submit java-jars |
Revision: 106c816 Submitted crossbow builds: ursacomputing/crossbow @ actions-cfd8fcd94f
|
@github-actions crossbow submit java-jars |
Revision: 1ac0510 Submitted crossbow builds: ursacomputing/crossbow @ actions-683460ca62
|
…d shared dependency found in libgandiva_jni.dylib: `libaws-cpp-sdk-config` `
…crossbow/arrow/cpp-build/awssdk_ep-prefix/src/awssdk_ep/aws-cpp-sdk-core/source/utils/crypto/commoncrypto/CryptoImpl.cpp:505:27: error: 'CCCryptorGCMSetIV' is only available on macOS 10.13 or newer [-Werror,-Wunguarded-availability-new]`
f3c2263
to
3c7255a
Compare
This should be fixed by #13712 |
@github-actions crossbow submit java-jars |
Revision: 3c7255a Submitted crossbow builds: ursacomputing/crossbow @ actions-ea49ddbb96
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1
Thanks!
Thanks, @kou! Could you, please, explain why it could not find the symbols? I saw you removed brew's version of aws-sdk-cpp. In ThirpartyToolChain.cmake I can see
Wasn't it enough for cmake to use built version? |
Sure. Our build used header files provided by aws-sdk-cpp installed by Homebrew but used library files provided by our bundled aws-sdk-cpp. It causes the problem. Our build used packages installed by Homebrew. Our build adds |
Benchmark runs are scheduled for baseline = fa7e7a3 and contender = 7fe71f5. 7fe71f5 is a master commit associated with this PR. Results will be available as each benchmark for each run completes. |
macOS development target is changed to 10.13 from 10.11.
See also the discussion on mailing list:
https://lists.apache.org/thread/pjgjrl716gvqzql586cnnoxb38nb0j5w