From: "nagachika (Tomoyuki Chikanaga)" Date: 2013-12-02T12:44:27+09:00 Subject: [ruby-core:58770] [ruby-trunk - Bug #9150][Closed] Segfault in case statement execution, possibly related to refinements Issue #9150 has been updated by nagachika (Tomoyuki Chikanaga). Status changed from Assigned to Closed duplicated. please move to #8872 ---------------------------------------- Bug #9150: Segfault in case statement execution, possibly related to refinements https://bugs.ruby-lang.org/issues/9150#change-43339 Author: bradleybuda (Bradley Buda) Status: Closed Priority: Normal Assignee: nagachika (Tomoyuki Chikanaga) Category: Target version: ruby -v: ruby 2.0.0p353 (2013-11-22 revision 43783) [x86_64-darwin13.0.0] Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN This code consistently segfaults in 2.0.0p353: require 'active_support/all' case 3600 when 1.week then true end This is after `gem install activesupport --version=3.2.13`. The code works fine in 2.0.0p247. I ran a git bisect between the two patches and I've narrowed it down to this change: https://bugs.ruby-lang.org/projects/ruby-trunk/repository/revisions/42869 . I don't know enough about ruby's internals to debug this any further, but according to LLDB the problem is a null pointer dereference in vm_eval.c: 141 { 142 VALUE ret; 143 144 if (!ci->me->def) return Qnil; 145 146 if (th->passed_block) { 147 ci->blockptr = (rb_block_t *)th->passed_block; ci->me is null on line 144. I can reproduce this error on both OSX and Linux. Let me know if I can provide any more info to help debug this. -- http://bugs.ruby-lang.org/