Skip to content

CI: upload the JVM crash report and minidump when an examples job fails (refs #352) - #364

Merged
tae898 merged 1 commit into
mainfrom
ci/352-upload-hs-err
Nov 10, 2026
Merged

tae898 merged 1 commit into
mainfrom
ci/352-upload-hs-err

Conversation

@tae898

@tae898 tae898 commented Nov 10, 2026

Copy link
Copy Markdown
Collaborator

Refs #352. The one HotSpot crash I saw in a Windows examples run left a crash report and a minidump on the runner, and both were lost with it. This uploads them as artifacts when the examples job fails, and uploads nothing, without an error, when there is no such file.

  • hs_err_pid*.log is written to the package's per-user log directory (-XX:ErrorFile in src/arcadedb/jvm.py, the directory per OS in src/arcadedb/_logdir.py), and on Windows the minidump hs_err_pid*.mdmp goes to the working directory of the process, which is examples/ (scripts/run_examples.sh).
  • There are two upload steps, not one. The upload action keeps one root directory per artifact, and on Windows the log directory is on C: and the workspace on D:, so one step would fail exactly when a crash left both files.
  • The step uses the same pinned actions/upload-artifact as the rest of the workflow, if: failure(), if-no-files-found: ignore, 14 days of retention.

I ran actionlint and the repository's pre-commit hooks on the changed file. What I have not verified: that a real crash writes the files into these paths on a runner (the Windows paths match the one crash in #352; the Linux and macOS paths come from the code, and the Linux one assumes XDG_STATE_HOME is unset on the runners).

🤖 Generated with Claude Code

The Windows examples leg of PR #351 crashed in the JVM (EXCEPTION_ACCESS_VIOLATION in
jvector VamanaDiversityProvider.isDiverse) and both files HotSpot wrote were lost:
hs_err_pid<pid>.log in the per-user log directory (-XX:ErrorFile, src/arcadedb/jvm.py,
_logdir.py) and hs_err_pid<pid>.mdmp in the working directory (examples/). The existing
upload only took examples/*.log.

Two steps on failure(), one artifact each per matrix leg, 14 days, if-no-files-found:
ignore. They are separate because upload-artifact keeps one root directory per artifact
and on Windows the log directory (C:) and the workspace (D:) have no common ancestor.
include-hidden-files is on for the Linux directory (~/.local); the patterns name only
hs_err_pid files.

Refs #352

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@tae898
tae898 merged commit 84a91c8 into main Nov 10, 2026
32 checks passed
@tae898
tae898 deleted the ci/352-upload-hs-err branch November 10, 2026 14:43
@github-actions github-actions Bot added this to the 26.12.1 milestone Nov 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant