Repository navigation
GH-1429: Match macOS JNI source selection to Linux - #1430
efegokdemir wants to merge 2 commits into
Conversation
|
Thank you for opening a pull request! Please label the PR with one or more of:
Also, add the 'breaking-change' label if appropriate. See CONTRIBUTING.md for details. |
| - name: Extract source archive | ||
| run: | | ||
| tar -xf apache-arrow-java-*.tar.gz --strip-components=1 | ||
| - name: Download the latest Apache Arrow C++ |
There was a problem hiding this comment.
This step downloads the latest released Arrow C++ tarball (download_cpp.sh defaults to latest-release). That's only the case for push, PR and tag runs, because the nightly schedule still builds against apache/arrow main.
The Linux JNI job above also still checks out main, so the two JNI jobs now compile against different C++ versions.
I would suggest to use the same C++ source for both jobs, and pass latest-rc explicitly, since this is the RC workflow.
As written, a JNI change that needs a newer C++ API could pass on one trigger type and fail on another.
| # make brew Java available to CMake | ||
| export JAVA_HOME=$(brew --prefix openjdk@17)/libexec/openjdk.jdk/Contents/Home | ||
| ci/scripts/jni_macos_build.sh . arrow build jni | ||
| - name: Test JSON dataset read |
There was a problem hiding this comment.
This step assumes the macOS native build includes JSON support, but jni_macos_build.sh exports ARROW_DATASET, ARROW_PARQUET, ARROW_ORC and ARROW_GANDIVA, and not ARROW_JSON.
If the preset or the released C++ doesn't enable it, testBaseJsonRead fails with FileFormat.JSON only after the long native build.
We should double check that JSON is enabled and export ARROW_JSON=ON in the build script.
Also, -Dsurefire.failIfNoSpecifiedTests=false means this step passes silently if the test is renamed or removed. Dropping that flag would make the step fail in that case.
Use latest-rc consistently, explicitly enable macOS JSON support, and run the dataset regression without suppressing missing-test failures.
Use the latest Apache Arrow C++ release for non-scheduled macOS JNI builds, matching the Linux jobs. Scheduled builds continue using
main, and the macOS job runsTestFileSystemDataset#testBaseJsonReadagainst its JNI library to catch JSON parser crashes. Related to #1429.The test was reproduced against the macOS JNI artifact from run 41256646402 and terminated the JVM in
ResolveSimdjsonResult. AI assistance was used to prepare this workflow change and regression test.