Skip to content

Add support for enabling valgrind's fair-sched option?Β #51

@ivoanjo

Description

@ivoanjo

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! πŸ™‡

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions