diff options
Diffstat (limited to '.github/workflows/vtest.yml')
-rw-r--r-- | .github/workflows/vtest.yml | 49 |
1 files changed, 29 insertions, 20 deletions
diff --git a/.github/workflows/vtest.yml b/.github/workflows/vtest.yml index d0e4ec3..284bff7 100644 --- a/.github/workflows/vtest.yml +++ b/.github/workflows/vtest.yml @@ -42,13 +42,18 @@ jobs: # Configure a short TMPDIR to prevent failures due to long unix socket # paths. TMPDIR: /tmp - # Force ASAN output into asan.log to make the output more readable. - ASAN_OPTIONS: log_path=asan.log OT_CPP_VERSION: 1.6.0 steps: - uses: actions/checkout@v4 with: fetch-depth: 100 + + - name: Setup coredumps + if: ${{ startsWith(matrix.os, 'ubuntu-') }} + run: | + sudo sysctl -w fs.suid_dumpable=1 + sudo sysctl kernel.core_pattern=/tmp/core.%h.%e.%t + # # Github Action cache key cannot contain comma, so we calculate it based on job name # @@ -57,17 +62,6 @@ jobs: run: | echo "key=$(echo ${{ matrix.name }} | sha256sum | awk '{print $1}')" >> $GITHUB_OUTPUT - -# -# temporary hack -# should be revisited after https://github.com/actions/runner-images/issues/9491 is resolved -# - - - name: Setup enthropy - if: ${{ startsWith(matrix.os, 'ubuntu-') }} - run: | - sudo sysctl vm.mmap_rnd_bits=28 - - name: Cache SSL libs if: ${{ matrix.ssl && matrix.ssl != 'stock' && matrix.ssl != 'BORINGSSL=yes' && matrix.ssl != 'QUICTLS=yes' }} id: cache_ssl @@ -92,7 +86,8 @@ jobs: libpcre2-dev \ libsystemd-dev \ ninja-build \ - socat + socat \ + gdb - name: Install brew dependencies if: ${{ startsWith(matrix.os, 'macos-') }} run: | @@ -123,7 +118,7 @@ jobs: ERR=1 \ TARGET=${{ matrix.TARGET }} \ CC=${{ matrix.CC }} \ - DEBUG="-DDEBUG_STRICT -DDEBUG_MEMORY_POOLS -DDEBUG_POOL_INTEGRITY" \ + DEBUG="-DDEBUG_POOL_INTEGRITY" \ ${{ join(matrix.FLAGS, ' ') }} \ ADDLIB="-Wl,-rpath,/usr/local/lib/ -Wl,-rpath,$HOME/opt/lib/" sudo make install @@ -150,11 +145,16 @@ jobs: # This is required for macOS which does not actually allow to increase # the '-n' soft limit to the hard limit, thus failing to run. ulimit -n 65536 + ulimit -c unlimited make reg-tests VTEST_PROGRAM=../vtest/vtest REGTESTS_TYPES=default,bug,devel - name: Config syntax check memleak smoke testing if: ${{ contains(matrix.name, 'ASAN') }} run: | - ./haproxy -f .github/h2spec.config -c + ./haproxy -dI -f .github/h2spec.config -c + ./haproxy -dI -f examples/content-sw-sample.cfg -c + ./haproxy -dI -f examples/option-http_proxy.cfg -c + ./haproxy -dI -f examples/quick-test.cfg -c + ./haproxy -dI -f examples/transparent_proxy.cfg -c - name: Show VTest results if: ${{ failure() && steps.vtest.outcome == 'failure' }} run: | @@ -164,10 +164,19 @@ jobs: cat $folder/LOG echo "::endgroup::" done + exit 1 + + - name: Show coredumps + if: ${{ failure() && steps.vtest.outcome == 'failure' }} + run: | + failed=false shopt -s nullglob - for asan in asan.log*; do - echo "::group::$asan" - cat $asan + for file in /tmp/core.*; do + failed=true + printf "::group::" + gdb -ex 'thread apply all bt full' ./haproxy $file echo "::endgroup::" done - exit 1 + if [ "$failed" = true ]; then + exit 1; + fi |