- Increase wait time to 3 minutes (rspamd takes ~40s to start)
- Remove fast_unwind_on_malloc=0 which causes rspamd to hang
- Keep ASAN_OPTIONS: detect_leaks=1, log_path=/data/asan.log
- Keep LSAN_OPTIONS: exitcode=0 to collect all leaks
- ASAN logs are written on process termination
docker compose up -d
# Wait for services to be ready
+ # Rspamd takes ~30-40s to compile TLD database and load maps
echo "Waiting for services to start..."
- sleep 10
+ sleep 20
# Check services
echo "=== Docker Compose Services Status ==="
- name: Wait for Rspamd to be ready
working-directory: test/integration
run: |
- for i in {1..30}; do
+ for i in {1..60}; do
if curl -s http://localhost:50002/ping > /dev/null 2>&1; then
echo "Rspamd Controller is ready!"
exit 0
fi
- echo "Waiting for Rspamd... ($i/30)"
- sleep 2
+ echo "Waiting for Rspamd... ($i/60)"
+ sleep 3
done
echo "Rspamd failed to start!"
# AddressSanitizer configuration for multiple processes
# ASAN errors (buffer overflow, etc) immediately fail the test
# Leak sanitizer collects all leaks without failing (exitcode=0)
- - ASAN_OPTIONS=detect_leaks=1:print_stats=1:log_path=/data/asan.log:quarantine_size_mb=2048:malloc_context_size=20:fast_unwind_on_malloc=0
+ # NOTE: fast_unwind_on_malloc=0 causes rspamd to hang, so it's omitted
+ - ASAN_OPTIONS=detect_leaks=1:print_stats=1:log_path=/data/asan.log:quarantine_size_mb=2048:malloc_context_size=20
- LSAN_OPTIONS=suppressions=/etc/rspamd/lsan.supp:print_suppressions=0:exitcode=0
healthcheck:
test: [ "CMD-SHELL", "pidof rspamd > /dev/null || exit 1" ]