Skip to content
  • KJ Tsanaktsidis's avatar
    7bd7aee0
    Fix interpreter crash caused by RUBY_INTERNAL_EVENT_NEWOBJ + Ractors · 7bd7aee0
    KJ Tsanaktsidis authored
    When a Ractor is created whilst a tracepoint for
    RUBY_INTERNAL_EVENT_NEWOBJ is active, the interpreter crashes. This is
    because during the early setup of the Ractor, the stdio objects are
    created, which allocates Ruby objects, which fires the tracepoint.
    However, the tracepoint machinery tries to dereference the control frame
    (ec->cfp->pc), which isn't set up yet and so crashes with a null pointer
    dereference.
    
    Fix this by not firing GC tracepoints if cfp isn't yet set up.
    7bd7aee0
    Fix interpreter crash caused by RUBY_INTERNAL_EVENT_NEWOBJ + Ractors
    KJ Tsanaktsidis authored
    When a Ractor is created whilst a tracepoint for
    RUBY_INTERNAL_EVENT_NEWOBJ is active, the interpreter crashes. This is
    because during the early setup of the Ractor, the stdio objects are
    created, which allocates Ruby objects, which fires the tracepoint.
    However, the tracepoint machinery tries to dereference the control frame
    (ec->cfp->pc), which isn't set up yet and so crashes with a null pointer
    dereference.
    
    Fix this by not firing GC tracepoints if cfp isn't yet set up.
Loading