From 6dc7a2d0cca6e2d612fe5f01a5c2ef17143448f6 Mon Sep 17 00:00:00 2001 From: Gian Merlino Date: Thu, 24 Oct 2024 21:43:57 -0700 Subject: [PATCH] Capture more dumps on failure. Capture *.hprof, hs_err_pid*, replay_pid*, and core.NNNN on failure. --- .github/workflows/reusable-unit-tests.yml | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/.github/workflows/reusable-unit-tests.yml b/.github/workflows/reusable-unit-tests.yml index 3634da0e2002..378767b299d7 100644 --- a/.github/workflows/reusable-unit-tests.yml +++ b/.github/workflows/reusable-unit-tests.yml @@ -117,23 +117,26 @@ jobs: MAVEN_PROJECTS: ${{ inputs.maven_projects }} run: ./.github/scripts/unit_tests_script.sh - - name: Check for .hprof files on failure + - name: Check for dumps on failure if: ${{ failure() }} - id: check_for_heap_dump + id: check_for_dumps run: | - if ls ${GITHUB_WORKSPACE}/target/*.hprof 1> /dev/null 2>&1; then - echo "found_hprof=true" >> "$GITHUB_ENV" + if test -n "$(find "${GITHUB_WORKSPACE}" \( -name '*.hprof' -or -name 'hs_err_pid*' -or 'replay_pid*' -or -regex '.*/core\.[0-9]*' \))" + then + echo "found_dumps=true" >> "$GITHUB_ENV" else - echo "found_hprof=false" >> "$GITHUB_ENV" + echo "found_dumps=false" >> "$GITHUB_ENV" fi - - name: Collect tarball hprof dumps if they exist on failure - if: ${{ failure() && env.found_hprof == 'true' }} + - name: Collect dumps if they exist on failure + if: ${{ failure() && env.found_dumps == 'true' }} run: | - tar cvzf ${RUNNER_TEMP}/hprof-dumps.tgz ${GITHUB_WORKSPACE}/target/*.hprof + find "${GITHUB_WORKSPACE}" + \( -name '*.hprof' -or -name 'hs_err_pid*' -or 'replay_pid*' -or -regex '.*/core\.[0-9]*' \) + -exec tar -cvzf ${RUNNER_TEMP}/hprof-dumps.tgz {} \; - name: Upload hprof dumps to GitHub if they exist on failure - if: ${{ failure() && env.found_hprof == 'true' }} + if: ${{ failure() && env.found_dumps == 'true' }} uses: actions/upload-artifact@master with: name: Hprof-${{ inputs.group }} hprof dumps (Compile=jdk${{ inputs.build_jdk }}, Run=jdk${{ inputs.runtime_jdk }})