The library used uses the custom extension C. In extension C, he tries to call a method on a Ruby object that has already been garbage collected.
This cannot happen in pure Ruby, because the garbage collector will only free objects that are no longer available from any link. But in C, you can leave a link to a Ruby object in a place where the garbage collector does not check (for example, the compiler can put a variable in the CPU register).
Alex d
source share