Bug #3860

VM aborts when calling instance_eval on a Method converted to a proc

Added by Kelvin Liu almost 5 years ago. Updated over 4 years ago.

[ruby-core:32501]
Status:Closed
Priority:Normal
Assignee:-
ruby -v:ruby 1.9.2p0 (2010-08-18 revision 29036) [i386-darwin9.8.0] Backport:

Description

=begin
When I run the attached script with 1.9.2:

ruby-1.9.2-p0 inst_eval_1.9.2.rb
["foo.get", 1]
["foo_pr[]", 1]
inst_eval_1.9.2.rb:19: [BUG] vm_get_cref: unreachable
ruby 1.9.2p0 (2010-08-18 revision 29036) [i386-darwin9.8.0]

-- control frame ----------
c:0004 p:---- s:0011 b:0011 l:000010 d:000010 CFUNC :instance_eval
c:0003 p:0126 s:0008 b:0008 l:0026c4 d:000b5c EVAL inst_eval_1.9.2.rb:19
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH
c:0001 p:0000 s:0002 b:0002 l:0026c4 d:0026c4 TOP


-- Ruby level backtrace information ----------------------------------------
inst_eval_1.9.2.rb:19:in <main>'
inst_eval_1.9.2.rb:19:in
instance_eval'

-- C level backtrace information -------------------------------------------
0 libruby.1.9.1.dylib 0x0041ab24 rb_vm_bugreport + 196
1 libruby.1.9.1.dylib 0x002c41bc rb_compile_warn + 508
2 libruby.1.9.1.dylib 0x002c426b rb_bug + 43
3 libruby.1.9.1.dylib 0x003fce43 rb_vm_cref + 547
4 libruby.1.9.1.dylib 0x0041919a rb_yield + 1290
5 libruby.1.9.1.dylib 0x0041976d rb_mod_module_exec + 109
6 libruby.1.9.1.dylib 0x003f9415 rb_iseq_build_for_ruby2cext + 7141
7 libruby.1.9.1.dylib 0x00416075 rb_raise_method_missing + 1669
8 libruby.1.9.1.dylib 0x00401cfe rb_method_basic_definition_p + 16254
9 libruby.1.9.1.dylib 0x004092ed rb_method_basic_definition_p + 46445
10 libruby.1.9.1.dylib 0x0040988c rb_iseq_eval_main + 332
11 libruby.1.9.1.dylib 0x002c61c9 rb_mark_end_proc + 345
12 libruby.1.9.1.dylib 0x002c8d36 ruby_run_node + 102
13 ruby 0x00001fef main + 95
14 ruby 0x00001f56 start + 54

[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

Abort

This does not happen with 1.8.7 or 1.9.1.
=end

inst_eval_1.9.2.rb Magnifier (325 Bytes) Kelvin Liu, 09/23/2010 02:52 AM


Related issues

Duplicated by Ruby trunk - Bug #3786: instance_execにメソッドをわたした場合の挙動 Closed 09/05/2010

Associated revisions

Revision 29318
Added by Nobuyoshi Nakada almost 5 years ago

  • vm_insnhelper.c (vm_cref_push): no outer cref is needed for proc from method. Bug #3786, Bug #3860,

Revision 29318
Added by Nobuyoshi Nakada almost 5 years ago

  • vm_insnhelper.c (vm_cref_push): no outer cref is needed for proc from method. Bug #3786, Bug #3860,

History

#1 Updated by Kelvin Liu almost 5 years ago

=begin
This is probably related to: http://redmine.ruby-lang.org/issues/show/3786
=end

#2 Updated by Nobuyoshi Nakada almost 5 years ago

  • Status changed from Open to Closed

=begin
This issue was solved with changeset r29318.
Takada, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.

=end

Also available in: Atom PDF