Experiments to test heap profiling serialization impact #1381
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Test for memory leaks | |
on: [push] | |
jobs: | |
test-memcheck: | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: 3.4.0-preview1 # TODO: Use stable version once 3.4 is out | |
bundler-cache: true # runs 'bundle install' and caches installed gems automatically | |
bundler: latest | |
cache-version: v1 # bump this to invalidate cache | |
- run: sudo apt-get update && (sudo apt-get install -y valgrind || sleep 5 && sudo apt-get install -y valgrind) && valgrind --version | |
- run: bundle exec rake compile spec:profiling:memcheck | |
test-asan: | |
# Temporarily disabled on 2024-09-17 until ruby-asan builds are available again on | |
# https://github.com/ruby/ruby-dev-builder/releases | |
if: false | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: actions/checkout@v4 | |
# We're using a fork of ruby/setup-ruby because the "asan" tool is built into the clang compiler toolchain, and | |
# needs Ruby to be built with a special configuration. | |
# | |
# The special configuration is not yet available in the upstream `ruby/setup-ruby` github action, so I needed to | |
# fork it and push a small tweak to make it available. | |
# | |
# (The Ruby builds were added in https://github.com/ruby/ruby-dev-builder/pull/10 ). | |
- uses: datadog/setup-ruby@0c7206d6db81faf999795ceebfac00d164298bd5 | |
with: | |
ruby-version: asan | |
bundler-cache: true # runs 'bundle install' and caches installed gems automatically | |
bundler: latest | |
cache-version: v1 # bump this to invalidate cache | |
- run: env RUBY_FREE_AT_EXIT=1 LSAN_OPTIONS=verbosity=0:log_threads=1:suppressions=`pwd`/suppressions/lsan.supp ASAN_OPTIONS=detect_leaks=1 bundle exec rake spec:profiling:main |