We have the same issue here. IMHO, it is a bug introduced by 979ebcf91705709be5041a3be4514e5f1f6ec02c. The `mark_ary` get GCed before we add it to the ruby's global_list since we are doing memory allocations before calling rb_global_variable.
A simple test can be found here: https://github.com/azrle/ruby_c_ext_test I will try to submit a patch later.
