This is an automated email from the ASF dual-hosted git repository.
kou pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-java.git
The following commit(s) were added to refs/heads/main by this push:
new 0f256ece5 MINOR: [CI] Upload JVM crash files when the Binaries job
fails (#1428)
0f256ece5 is described below
commit 0f256ece567b303a87b7c225a2495d46b8d4a097
Author: Andy Grove <[email protected]>
AuthorDate: Sun Nov 1 15:11:31 2026 -0700
MINOR: [CI] Upload JVM crash files when the Binaries job fails (#1428)
## What's Changed
When a test JVM crashes in the RC workflow's Binaries job, the log says
only `Error occurred in starting fork, check output in log`, `Corrupted
channel by directly writing to native stream in forked JVM N` and
`Aborted (core dumped)`. The details stay on the runner. HotSpot writes
`hs_err_pid<pid>.log` to the module directory, and surefire saves the
crash banner the JVM printed to stdout in
`target/surefire-reports/*.dumpstream`. The job uploads neither.
For example, the Binaries job on #1419 failed twice this way ([attempt
1](https://github.com/apache/arrow-java/actions/runs/41233658912/job/124634336074),
[attempt
2](https://github.com/apache/arrow-java/actions/runs/41233658912/job/124888186799)).
All 46 arrow-dataset tests passed, then the JVM that had run 35 of them
aborted, and nothing in the log shows where it crashed.
This adds a step that uploads those files as a
`binaries-jvm-crash-files` artifact when the job fails. It uses the same
pinned `actions/upload-artifact` as the job's other upload steps.
`if-no-files-found: ignore` keeps the step quiet when a failure isn't a
crash.
I checked the patterns against a local arrow-dataset crash, which left
`dataset/hs_err_pid<pid>.log` and
`dataset/target/surefire-reports/<timestamp>-jvmRun<N>.dumpstream`.
actionlint reports nothing new in `rc.yml`. The step runs only when the
job fails, so this PR's own CI run won't exercise it.
---
.github/workflows/rc.yml | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/.github/workflows/rc.yml b/.github/workflows/rc.yml
index bc4ed5d5e..7f061fc3e 100644
--- a/.github/workflows/rc.yml
+++ b/.github/workflows/rc.yml
@@ -403,6 +403,18 @@ jobs:
- name: Build bundled JAR and docs
run: |
ci/scripts/jni_full_build.sh . jni binaries
+ # A test JVM that crashes leaves its HotSpot error log in the module
+ # directory and the crash banner it printed in surefire's dump files.
+ - name: Upload JVM crash files
+ if: failure()
+ uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9
# v7.0.2
+ with:
+ name: binaries-jvm-crash-files
+ path: |
+ **/hs_err_pid*.log
+ **/target/surefire-reports/*.dump
+ **/target/surefire-reports/*.dumpstream
+ if-no-files-found: ignore
- name: Prepare docs
run: |
mkdir -p docs