Project

General

Profile

Actions

Misc #20387

open

Meta-ticket for ASAN support

Added by kjtsanaktsidis (KJ Tsanaktsidis) 8 months ago. Updated 6 months ago.


Description

I was asked to provide a bit of information about the current status of ASAN in CRuby, so I thought I'd open this meta-ticket to track all of the work I've been performing on fixing up address sanitizer support.

So far, I have fixed the following issues related to ASAN support:

The current state of things is that, by following the instructions in https://github.com/ruby/ruby/blob/master/doc/contributing/building_ruby.md, you can successfully build Ruby with ASAN enabled, however, the test suite has several failures. I'm currently working on addressing these:

The next step is to merge https://github.com/ruby/ruby/pull/10122 (https://bugs.ruby-lang.org/issues/20310) which I plan to do next week (I'm currently away on a work trip). That makes sure that VALUEs stored in ASAN fake stacks from threads other than the currently running thread get marked during GC.

After that, I need to push up patches for the remaining few issues. I mostly have these patches ready to go already; in fact, last week I got the full make check suite passing all tests with ASAN enabled!

Once that's working, I'd like to investigate how ASAN can fit into CRuby's CI matrix somewhere so that it stays working, although I have not thought too deeply about this yet.

I will provide further updates on this ticket so anybody interested can stay in the loop.


Related issues 9 (1 open8 closed)

Related to Ruby master - Bug #20001: Make Ruby work properly with ASAN enabledClosedActions
Related to Ruby master - Bug #20220: M:N threading needs to tell ASAN about stack switchesClosedkjtsanaktsidis (KJ Tsanaktsidis)Actions
Related to Ruby master - Feature #20273: Disable callcc when compiled with ASANClosedActions
Related to Ruby master - Bug #20221: ASAN: make test-basic: un-prefixed symbol leakageClosedkjtsanaktsidis (KJ Tsanaktsidis)Actions
Related to Ruby master - Feature #20274: Add RubyVM::ASAN.enabled?ClosedActions
Related to Ruby master - Bug #20243: M:N threading VM_ASSERT failure in rb_current_execution_context with clang 17 (on Linux)OpenActions
Related to Ruby master - Bug #20310: ASAN fake stacks need to be marked during GC for non-current execution contextClosedkjtsanaktsidis (KJ Tsanaktsidis)Actions
Related to Ruby master - Bug #20398: heap-buffer-overflow in numeric literal parsingClosedkjtsanaktsidis (KJ Tsanaktsidis)Actions
Related to Ruby master - Bug #20402: Double-free in TestIseqLoad#test_stressful_roundtripClosedkjtsanaktsidis (KJ Tsanaktsidis)Actions
Actions

Also available in: Atom PDF

Like1
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0