]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Test] Improve ASAN configuration and fix logs order
authorVsevolod Stakhov <vsevolod@rspamd.com>
Sat, 18 Oct 2025 08:47:47 +0000 (09:47 +0100)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Sat, 18 Oct 2025 08:47:47 +0000 (09:47 +0100)
- 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

.github/workflows/integration-test.yml
test/integration/docker-compose.yml

index 00b02ae6ec814d96781d9ba8a5e8abf3c62c8cbc..36e8cf7721bb79be204d1a44feb3a965a15df36e 100644 (file)
@@ -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
index 323607df241c744278e7c29361b0baebb13948ac..49bf871815f6504316aca321e4285a3cdfa18ce5 100644 (file)
@@ -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