From 65acc86756bf5128647f87f76dbf8cf9fafe38d0 Mon Sep 17 00:00:00 2001 From: Gian Merlino Date: Sat, 26 Oct 2024 21:25:46 -0700 Subject: [PATCH] Capture more dumps on failure. (#17412) Capture *.hprof, hs_err_pid*, replay_pid*, and core.NNNN on failure. --- .github/workflows/reusable-unit-tests.yml | 27 +++++++++++++---------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/.github/workflows/reusable-unit-tests.yml b/.github/workflows/reusable-unit-tests.yml index 3634da0e2002..fe55e563b2dd 100644 --- a/.github/workflows/reusable-unit-tests.yml +++ b/.github/workflows/reusable-unit-tests.yml @@ -117,27 +117,30 @@ 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 -name '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 -name 'replay_pid*' -or -regex '.*/core\.[0-9]*' \) \ + -exec tar -cvzf ${RUNNER_TEMP}/failure-dumps.tar.gz {} + - - name: Upload hprof dumps to GitHub if they exist on failure - if: ${{ failure() && env.found_hprof == 'true' }} + - name: Upload dumps to GitHub if they exist on failure + 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 }}) - path: ${{ runner.temp }}/hprof-dumps.tgz + name: Failure-${{ inputs.group }} failure dumps (Compile=jdk${{ inputs.build_jdk }}, Run=jdk${{ inputs.runtime_jdk }}) + path: ${{ runner.temp }}/failure-dumps.tar.gz - name: set outputs on failure id: set_outputs