- 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
#
libpcre2-dev \
libsystemd-dev \
ninja-build \
- socat
+ socat \
+ gdb
- name: Install brew dependencies
if: ${{ startsWith(matrix.os, 'macos-') }}
run: |
# 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 HAPROXY_ARGS="-dI" VTEST_PROGRAM=../vtest/vtest REGTESTS_TYPES=default,bug,devel
- name: Config syntax check memleak smoke testing
if: ${{ contains(matrix.name, 'ASAN') }}
echo "::endgroup::"
done
exit 1
+
+ - name: Show coredumps
+ if: ${{ failure() && steps.vtest.outcome == 'failure' }}
+ run: |
+ failed=false
+ shopt -s nullglob
+ for file in /tmp/core.*; do
+ failed=true
+ printf "::group::"
+ gdb -ex 'thread apply all bt full' ./haproxy $file
+ echo "::endgroup::"
+ done
+ if [ "$failed" = true ]; then
+ exit 1;
+ fi