General

Profile

ivoanjo (Ivo Anjo)

Issues

open closed Total
Assigned issues 0 0 0
Reported issues 6 15 21

Activity

07/17/2026

08:01 AM Ruby Bug #22200: ObjectSpace._id2ref can return a different object than the id's owner on Ruby 4.0 (stale id2ref_tbl entry for objects with generic fields)
To be clear, on the dd-trace-rb / `datadog` gem side we plan to move off of `_id2ref`.
I guess @navidemad's point is more to report that `_id2ref` is already broken on 4.0, whereas before we were merely considering it was still workin...
ivoanjo (Ivo Anjo)

04/17/2026

06:30 PM Ruby Bug #21993: `rb_gc_update_tbl_refs` is incorrectly documented as the dcompact pair for `rb_mark_tbl_no_pin`, and is unsafe for `st_table`s with non-VALUE keys
Yeah I think that'd be fine! To be honest I never ever knew these APIs existed, I've been researching the GC and that's how I found it, so I suspect they might not be very common? ivoanjo (Ivo Anjo)
05:12 PM Ruby Bug #21993: `rb_gc_update_tbl_refs` is incorrectly documented as the dcompact pair for `rb_mark_tbl_no_pin`, and is unsafe for `st_table`s with non-VALUE keys
I guess objects that get a finalizer don't move -- e.g. `gc_is_moveable_obj` ==> `FALSE` so that's what made the finalizer table never be affected by this detail. ivoanjo (Ivo Anjo)

04/11/2026

02:56 PM Ruby Bug #21993 (Open): `rb_gc_update_tbl_refs` is incorrectly documented as the dcompact pair for `rb_mark_tbl_no_pin`, and is unsafe for `st_table`s with non-VALUE keys
Hey!
I work for Datadog on the [Ruby profiler](https://github.com/datadog/dd-trace-rb) and I've been exploring the TypedData GC API to understand the correct patterns for writing compaction-aware extensions.
While reading through t...
ivoanjo (Ivo Anjo)

03/11/2026

04:02 PM Ruby Feature #21950: Add a built-in CPU-time profiler
The opentelemetry community project includes people from a number of companies building profilers (datadog, google, elastic, polar signals) and it's proposing a new format that's inspired by pprof but tries to solve for some of its short... ivoanjo (Ivo Anjo)

01/29/2026

01:33 PM Ruby Bug #21840: Locking a mutex can lead to starvation
Really cool! I wonder if this will end up solving https://bugs.ruby-lang.org/issues/19717 as well / https://github.com/ruby/ruby/pull/8331 is an old PR for it. ivoanjo (Ivo Anjo)

12/11/2025

09:45 AM Ruby Bug #21710: Segfault when reading object_id after it is set inside RUBY_INTERNAL_EVENT_NEWOBJ
byroot (Jean Boussier) wrote in #note-24:
> > I just don't think we should support this.
> ...
To be clear, we are aware we're doing really shady weird things to get a bit less overhead / a few more features, etc and we don't expect u...
ivoanjo (Ivo Anjo)

12/04/2025

10:27 AM Ruby Feature #21722: Expose rb_gc_mark_weak API for use in extensions
> @ivoanjo (Ivo Anjo) I don't know if this would work, but what about using rb_postponed_job_trigger to delay adding the object into a WeakMap? (there would also probably need to be a temporary buffer used to mark the object until it is ... ivoanjo (Ivo Anjo)
10:09 AM Ruby Bug #21710: Segfault when reading object_id after it is set inside RUBY_INTERNAL_EVENT_NEWOBJ
> I'm fine with adding MOVEOBJ, it makes sense, but I don't think it's currently necessary. ObjectSpace.trace_object_allocations handles this by subscribing both to NEWOBJ and FREEOBJ and tracking the objects in its own hash table (subsc... ivoanjo (Ivo Anjo)

12/03/2025

11:06 AM Ruby Bug #21710: Segfault when reading object_id after it is set inside RUBY_INTERNAL_EVENT_NEWOBJ
> That sounds like a use case for WeakRef or ObjectSpace::WeakMap.
> ...
In retrospect I was a bit confusing there -- The key missing bit is having something that's safe to use from `NEWOBJ` tracepoint, which is what `WeakRef` and `Weak...
ivoanjo (Ivo Anjo)

Also available in: Atom