-
Notifications
You must be signed in to change notification settings - Fork 14
Description
Hey π
Big thanks for ruby_memcheck. I've been setting it up to run in CI for the datadog gem (the profiling stuff especially has a lot of native code).
I am happy to report that (so far) I don't have any wins to report ;) ;) ;)
I would like to ask for a small feature: Adding support for controlling valgrind's --fair-sched option.
Right now I'm using the escape hatch RubyMemcheck.config(valgrind_options: ['--fair-sched=yes']) to set it.
Why this option? In several cases, our test suite assumes multi-threaded behavior (because, e.g. the profiler runs in parallel with the Ruby app), and in some cases we run stuff in forks; by default valgrind forces everything to run sequentially (there's a joke in here about adding an even more global GVL somewhere...). This makes some of our specs fail (usually with timeouts) or hang (because they busy-loop in a few cases) as they would on a single-core machine.
Using this setting makes these tests pass and saves us from manually needing to maintain a list of excluded tests just for ruby_memtest.
Thanks again! π