From: Vsevolod Stakhov Date: Sat, 18 Oct 2025 08:47:47 +0000 (+0100) Subject: [Test] Improve ASAN configuration and fix logs order X-Git-Tag: 3.14.0~67^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e31bdc2f50312a02e819bbd684926611dbae11b8;p=thirdparty%2Frspamd.git [Test] Improve ASAN configuration and fix logs order - Add proper ASAN_OPTIONS: quarantine_size_mb, malloc_context_size, fast_unwind_on_malloc - Add exitcode=0 to prevent ASAN from failing tests - Collect Docker logs before uploading - Add debug output for ASAN env vars and /data contents --- diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml index 00b02ae6ec..36e8cf7721 100644 --- a/.github/workflows/integration-test.yml +++ b/.github/workflows/integration-test.yml @@ -253,6 +253,18 @@ jobs: if: always() working-directory: test/integration run: | + # Debug: Check if ASAN environment is set in container + echo "=== Checking ASAN configuration in container ===" + docker compose exec -T rspamd sh -c 'echo ASAN_OPTIONS=$ASAN_OPTIONS; echo LSAN_OPTIONS=$LSAN_OPTIONS' + + # Debug: Check what files exist in /data + echo "=== Files in /data inside container ===" + docker compose exec -T rspamd ls -la /data/ + + # Debug: Check what files exist in data on host + echo "=== Files in data/ on host ===" + ls -la data/ + # Fix permissions on ASAN logs created by Docker sudo chmod -R 644 data/asan.log* 2>/dev/null || true ./scripts/check-asan-logs.sh || echo "Memory issues detected, but continuing..." @@ -269,6 +281,12 @@ jobs: test/integration/data/*.log retention-days: 7 + - name: Collect Docker logs + if: always() + working-directory: test/integration + run: | + docker compose logs > docker-compose-logs.txt + - name: Upload Docker logs if: always() uses: actions/upload-artifact@v4 @@ -279,12 +297,6 @@ jobs: retention-days: 7 continue-on-error: true - - name: Collect Docker logs - if: always() - working-directory: test/integration - run: | - docker compose logs > docker-compose-logs.txt - - name: Stop Docker Compose if: always() working-directory: test/integration diff --git a/test/integration/docker-compose.yml b/test/integration/docker-compose.yml index 323607df24..49bf871815 100644 --- a/test/integration/docker-compose.yml +++ b/test/integration/docker-compose.yml @@ -41,8 +41,10 @@ services: - RSPAMD_REDIS_ADDR=redis - RSPAMD_REDIS_PORT=6379 # AddressSanitizer configuration for multiple processes - - ASAN_OPTIONS=detect_leaks=1:halt_on_error=0:abort_on_error=0:print_stats=1:log_path=/data/asan.log - - LSAN_OPTIONS=suppressions=/etc/rspamd/lsan.supp:print_suppressions=0 + # halt_on_error=0 and abort_on_error=0 allow collecting all errors + # exitcode=0 prevents ASAN from returning non-zero exit code + - ASAN_OPTIONS=detect_leaks=1:halt_on_error=0:abort_on_error=0:exitcode=0:print_stats=1:log_path=/data/asan.log:quarantine_size_mb=2048:malloc_context_size=20:fast_unwind_on_malloc=0 + - LSAN_OPTIONS=suppressions=/etc/rspamd/lsan.supp:print_suppressions=0:exitcode=0 healthcheck: test: [ "CMD-SHELL", "pidof rspamd > /dev/null || exit 1" ] interval: 10s