Bug #10106
Updated by nobu (Nobuyoshi Nakada) about 10 years ago
This works: ~~~ruby ~~~ module RefinementBug refine BasicObject do def foo 1 end end end using RefinementBug puts Object.new.foo #=> 1 ~~~ If you leave out the `using RefinementBug`, you would expect to get a NoMethodError and you do if you are refining Object: ~~~ruby ~~~ module RefinementBug refine Object do def foo 1 end end end puts Object.new.foo #=> undefined method `foo' for #<Object:0x007f8c0d0894e0> (NoMethodError) ~~~ But I get a segmentation fault when I run: ~~~ruby ~~~ module RefinementBug refine BasicObject do def foo 1 end end end puts Object.new.foo # => Seg fault ~~~ ~~~ refinement_bug.rb:9: [BUG] Segmentation fault at 0x00000000000018 ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin13.0] -- Crash Report log information -------------------------------------------- See Crash Report log file under the one of following: * ~/Library/Logs/CrashReporter * /Library/Logs/CrashReporter * ~/Library/Logs/DiagnosticReports * /Library/Logs/DiagnosticReports for more details. -- Control frame information ----------------------------------------------- c:0002 p:0024 s:0006 E:0010d8 EVAL refinement_bug.rb:9 [FINISH] c:0001 p:0000 s:0002 E:001a58 TOP [FINISH] refinement_bug.rb:9:in `<main>' -- C level backtrace information ------------------------------------------- 0 ruby 0x000000010ef92196 rb_vm_bugreport + 134 1 ruby 0x000000010ee48963 report_bug + 307 2 ruby 0x000000010ee48824 rb_bug + 180 3 ruby 0x000000010ef15469 sigsegv + 153 4 libsystem_platform.dylib 0x00007fff8d4615aa _sigtramp + 26 5 ruby 0x000000010ef80006 rb_method_entry_get_without_cache + 182 6 ??? 0x0000000000000000 0x0 + 0 -- Other runtime information ----------------------------------------------- * Loaded script: refinement_bug.rb * Loaded features: 0 enumerator.so 1 /Users/max/.rubies/ruby-2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/enc/encdb.bundle 2 /Users/max/.rubies/ruby-2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/enc/trans/transdb.bundle 3 /Users/max/.rubies/ruby-2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/rbconfig.rb 4 /Users/max/.rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/compatibility.rb 5 /Users/max/.rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/defaults.rb 6 /Users/max/.rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/deprecate.rb 7 /Users/max/.rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/errors.rb 8 /Users/max/.rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/version.rb 9 /Users/max/.rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/requirement.rb 10 /Users/max/.rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/platform.rb 11 /Users/max/.rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/basic_specification.rb 12 /Users/max/.rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/stub_specification.rb 13 /Users/max/.rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/util/stringio.rb 14 /Users/max/.rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/specification.rb 15 /Users/max/.rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/exceptions.rb 16 /Users/max/.rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_gem.rb 17 thread.rb 18 /Users/max/.rubies/ruby-2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/thread.bundle 19 /Users/max/.rubies/ruby-2.1.2/lib/ruby/2.1.0/monitor.rb 20 /Users/max/.rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb 21 /Users/max/.rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems.rb [NOTE] You may have encountered a bug in the Ruby interpreter or extension libraries. Bug reports are welcome. For details: http://www.ruby-lang.org/bugreport.html zsh: abort ruby refinement_bug.rb ~~~ I tried to look around for this issue and couldn't find anything similar but sorry if this is a duplicate or if this is not a bug. Thanks!