Skip to content

add CI workflow for Ruby ASAN (AddressSanitizer) testing#4

Open
otegami wants to merge 1 commit intomainfrom
feature/add-asan-ci-workflow
Open

add CI workflow for Ruby ASAN (AddressSanitizer) testing#4
otegami wants to merge 1 commit intomainfrom
feature/add-asan-ci-workflow

Conversation

@otegami
Copy link
Owner

@otegami otegami commented Mar 4, 2026

Use ruby/setup-ruby with ruby-version: asan on ubuntu-24.04. The LD_PRELOAD libstdc++.so to resolve __cxa_throw ASAN CHECK failure when DuckDB throws C++ exceptions internally.

See: google/sanitizers#934

@otegami otegami force-pushed the feature/add-asan-ci-workflow branch 2 times, most recently from d5646f3 to 3b6a9a0 Compare March 6, 2026 09:15
Add GitHub Actions workflow that runs a smoke test with ASAN-enabled
Ruby to detect memory errors (buffer overflows, use-after-free, leaks)
in the C extension layer.

- Use ruby/setup-ruby with `ruby-version: asan`
- LD_PRELOAD libstdc++ to work around __cxa_throw ASAN CHECK failures
  when non-ASAN DuckDB throws C++ exceptions internally
- Test step uses continue-on-error until all ASAN issues are fixed
- Cache DuckDB builds with ASAN-specific key to avoid collisions

This workflow is a starting point. The plan is to incrementally fix
ASAN-detected issues and eventually run the full test suite under ASAN.
@otegami otegami force-pushed the feature/add-asan-ci-workflow branch from 3b6a9a0 to 966c37c Compare March 6, 2026 09:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant