Issue #20281 has been updated by kjtsanaktsidis (KJ Tsanaktsidis).
[Bug #20310] ASAN fake stacks need to be marked during GC for non-current execution
context
* When the GC is marking machine stacks, and ASAN is enabled, it needs to detect pointers
on the stack which point to ASAN "fake stack" entries, and mark those "fake
stacks" as well. For example, V8 does that here:
https://github.com/v8/v8/blob/b639938e99fa6b5ffa9c859b18c72a251fd56942/src/…
* In CRuby, we already do that for the current execution context here:
https://github.com/ruby/ruby/blob/23dc7aa2c5a104e73563134a595124804379f049/…
* However, this is only called for the current execution context (i.e. the thread/fiber
which is performing the GC work). Machine stacks for other threads & fibers are not
yet marked in this way.
* I propose to unify all the machine stack marking for all kinds of machine stacks into a
single function in gc.c, `rb_gc_mark_machine_context`. PR for this is here:
https://github.com/ruby/ruby/pull/10122. All machine-stack marking for all fibers/threads
flows through the same code path with this PR.
* Alternative approach would be to write a helper for marking ASAN fake stack values, and
call it from various places in `cont.c` and `vm.c`.
* I would like a decision on whether the refactoring of machine stack marking into a
single function is worthwhile, or whether it's too ASAN specific and I should just add
ASAN-related code to each place we do machine stack marking currently.
* (sorry, this is my first dev meeting agenda item, so apologies if this is not the kind
of thing discussed in dev meetings!)
----------------------------------------
Misc #20281: DevMeeting-2024-03-14
https://bugs.ruby-lang.org/issues/20281#change-107134
* Author: mame (Yusuke Endoh)
* Status: Open
----------------------------------------
# The next dev meeting
**Date: 2024/03/14 09:00-12:00, 13:00-17:00** (JST)
Log: *TBD*
- Dev meeting *IS NOT* a decision-making place. All decisions should be done at the bug
tracker.
- Dev meeting is a place we can ask Matz, nobu, nurse and other developers directly.
- Matz is a very busy person. Take this opportunity to ask him. If you can not attend,
other attendees can ask instead of you (if attendees can understand your issue).
- We will write a record of the discussion in the file or to each ticket in English.
- All activities are best-effort (keep in mind that most of us are volunteer developers).
- The date, time and place of the meeting are scheduled according to when/where we can
reserve Matz's time.
- *DO NOT* discuss then on this ticket, please.
# Call for agenda items
If you have a ticket that you want matz and committers to discuss, please post it into
this ticket in the following format:
```
* [Ticket ref] Ticket title (your name)
* Comment (A summary of the ticket, why you put this ticket here, what point should be
discussed, etc.)
```
Example:
```
* [Feature #14609] `Kernel#p` without args shows the receiver (ko1)
* I feel this feature is very useful and some people say :+1: so let discuss this
feature.
```
- It is recommended to add a comment by 2024/03/11. We hold a preparatory meeting to
create an agenda a few days before the dev-meeting.
- The format is strict. We'll use [this script to automatically create an
markdown-style
agenda](https://gist.github.com/mame/b0390509ce1491b43610b9ebb665eb86). We
may ignore a comment that does not follow the format.
- Your comment is mandatory. We cannot read all discussion of the ticket in a limited
time. We appreciate it if you could write a short summary and update from a previous
discussion.
--
https://bugs.ruby-lang.org/