[MacRuby-devel] [MacRuby] #819: Getting references to Method instances leads to segfault

MacRuby ruby-noreply at macosforge.org
Fri Jul 30 15:48:42 PDT 2010


#819: Getting references to Method instances leads to segfault
-------------------------------------+--------------------------------------
 Reporter:  eloy.de.enige@…          |       Owner:  lsansonetti@…        
     Type:  defect                   |      Status:  new                  
 Priority:  blocker                  |   Milestone:                       
Component:  MacRuby                  |    Keywords:                       
-------------------------------------+--------------------------------------
 As discussed with Laurent, it was hard to reduce the problem. Hence, here
 are the steps to take, to run a spec which shows the problem:

 {{{
 % git clone git://github.com/alloy/interactive-macruby.git im
 % cd im
 % git checkout 966e48cd04e1ee77630869af7f75c356cd106981
 % env DYLD_LIBRARY_PATH=../macruby gdb --args macruby -I
 /Library/Ruby/Gems/1.8/gems/mspec-1.5.17/lib /usr/bin/mspec-run
 spec/node_spec.rb
 }}}

 (You need the mspec gem installed and adjust the paths in the last line
 accordingly.)

 The backtrace:

 {{{

 Program received signal EXC_BAD_ACCESS, Could not access memory.
 Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000018
 0x0000000100049978 in method_eq (method=<value temporarily unavailable,
 due to optimizations>, sel=<value temporarily unavailable, due to
 optimizations>, other=8599443168) at proc.c:721
 721         if (m1->oclass != m2->oclass
 (gdb) bt
 #0  0x0000000100049978 in method_eq (method=<value temporarily
 unavailable, due to optimizations>, sel=<value temporarily unavailable,
 due to optimizations>, other=8599443168) at proc.c:721
 #1  0x00000001001414fb in rb_vm_dispatch (_vm=0x100f1e410,
 cache=0x100e51840, top=0, self=8600378144, klass=0x2000a5360,
 sel=0x100f6ba40, block=0x0, opt=0 '\0', argc=<value temporarily
 unavailable, due to optimizations>, argv=0x7fff5fbec438) at
 dispatcher.cpp:161
 #2  0x000000010355a870 in ?? ()
 #3  0x0000000103597c1a in ?? ()
 #4  0x0000000106fd353f in ?? ()
 #5  0x00000001001414fb in rb_vm_dispatch (_vm=0x100f1e410,
 cache=0x100e6fe40, top=0, self=8599775776, klass=0x200968060,
 sel=0x100f6ba40, block=0x0, opt=2 '\002', argc=<value temporarily
 unavailable, due to optimizations>, argv=0x7fff5fbecdb8) at
 dispatcher.cpp:161
 #6  0x000000010006d700 in rb_equal (obj1=8599775776, obj2=8600076928) at
 vm.h:594
 #7  0x0000000100016b18 in rb_ary_equal (ary1=8600117504, ary2=8599978848)
 at array.c:139
 #8  0x00000001001414fb in rb_vm_dispatch (_vm=0x100f1e410,
 cache=0x100e51480, top=0, self=8600117504, klass=0x20006d2c0,
 sel=0x100f6ba40, block=0x0, opt=0 '\0', argc=<value temporarily
 unavailable, due to optimizations>, argv=0x7fff5fbedb58) at
 dispatcher.cpp:161
 #9  0x000000010355a870 in ?? ()
 #10 0x0000000103597c1a in ?? ()
 #11 0x00000001035b3024 in ?? ()
 #12 0x00000001001414fb in rb_vm_dispatch (_vm=0x100f1e410,
 cache=0x100e6f3c0, top=0, self=8599996960, klass=0x2006682a0,
 sel=0x100f6ba40, block=0x0, opt=0 '\0', argc=<value temporarily
 unavailable, due to optimizations>, argv=0x7fff5fbee8f8) at
 dispatcher.cpp:161
 #13 0x000000010355a870 in ?? ()
 #14 0x0000000103597c1a in ?? ()
 #15 0x0000000106fe07b9 in ?? ()
 #16 0x000000010014221d in rb_vm_yield_under (klass=<value temporarily
 unavailable, due to optimizations>, self=8597242336, argc=<value
 temporarily unavailable, due to optimizations>, argv=0x2006682a0) at
 dispatcher.cpp:98
 #17 0x00000001000ff7ff in specific_eval (argc=<value temporarily
 unavailable, due to optimizations>, argv=0x0, klass=8597240960,
 self=8597242336) at vm_eval.c:372
 #18 0x000000010014156a in rb_vm_dispatch (_vm=0x100f1e410,
 cache=0x100e72c00, top=8596070016, self=8597242336, klass=0x2006f7c80,
 sel=0x100fd04d0, block=0x200968480, opt=0 '\0', argc=0, argv=0x0) at
 dispatcher.cpp:444
 #19 0x000000010355a870 in ?? ()
 #20 0x0000000106f8d805 in ?? ()
 #21 0x00000001001414fb in rb_vm_dispatch (_vm=0x100f1e410,
 cache=0x100e7a7c0, top=8599606848, self=8596070016, klass=0x2005da620,
 sel=0x1060d5910, block=0x200968480, opt=0 '\0', argc=<value temporarily
 unavailable, due to optimizations>, argv=0x7fff5fbf08c8) at
 dispatcher.cpp:161
 #22 0x000000010355a870 in ?? ()
 #23 0x0000000106fd6862 in ?? ()
 #24 0x00000001001440d7 in rb_vm_yield_args (_vm=0x100f1e410, argc=<value
 temporarily unavailable, due to optimizations>, argv=0x2005da620) at
 dispatcher.cpp:100
 #25 0x0000000100038676 in enum_all_func [inlined] () at
 /Users/eloy/Documents/DEVELOPMENT/MacRuby/macruby/enum.c:872
 #26 0x0000000100038676 in all_iter_i (i=<value temporarily unavailable,
 due to optimizations>, memo=0x7fff5fbf1ad8, argc=<value temporarily
 unavailable, due to optimizations>, argv=<value temporarily unavailable,
 due to optimizations>) at enum.c:872
 #27 0x0000000100144175 in rb_vm_yield_args (_vm=0x100f1e410, argc=1,
 argv=0x7fff5fbf1128) at dispatcher.cpp:1066
 #28 0x00000001000fe1c8 in rb_yield (val=8599672960) at vm_eval.c:196
 #29 0x000000010001541d in rary_each (ary=8600308224, sel=<value
 temporarily unavailable, due to optimizations>) at array.c:1064
 #30 0x0000000100141516 in rb_vm_dispatch (_vm=0x100f1e410,
 cache=0x100e52680, top=0, self=8600308224, klass=0x20006d2c0,
 sel=0x100f4ca20, block=0x2009a6f80, opt=2 '\002', argc=<value temporarily
 unavailable, due to optimizations>, argv=0x0) at dispatcher.cpp:159
 #31 0x00000001000fdd43 in rb_objc_block_call (obj=8600308224,
 sel=0x100f4ca20, argc=0, argv=0x0, bl_proc=<value temporarily unavailable,
 due to optimizations>, data2=<value temporarily unavailable, due to
 optimizations>) at vm.h:594
 #32 0x0000000100037417 in enum_all (obj=8600308224, sel=<value temporarily
 unavailable, due to optimizations>) at enum.c:896
 #33 0x0000000100141516 in rb_vm_dispatch (_vm=0x100f1e410,
 cache=0x100e6ac80, top=8599606848, self=8600308224, klass=0x20006d2c0,
 sel=0x100fb82c0, block=0x2009f0280, opt=0 '\0', argc=<value temporarily
 unavailable, due to optimizations>, argv=0x0) at dispatcher.cpp:159
 #34 0x000000010355a870 in ?? ()
 #35 0x0000000106fd64ac in ?? ()
 #36 0x00000001001414ac in rb_vm_dispatch (_vm=0x100f1e410,
 cache=0x100e80880, top=8599606848, self=8599606848, klass=0x20060b640,
 sel=0x1060d5910, block=0x0, opt=2 '\002', argc=<value temporarily
 unavailable, due to optimizations>, argv=0x7fff5fbf2a20) at
 dispatcher.cpp:165
 #37 0x000000010355a870 in ?? ()
 #38 0x0000000106fd97a4 in ?? ()
 #39 0x00000001001440d7 in rb_vm_yield_args (_vm=0x100f1e410, argc=<value
 temporarily unavailable, due to optimizations>, argv=0x20060b640) at
 dispatcher.cpp:100
 #40 0x00000001000fe1c8 in rb_yield (val=8600346176) at vm_eval.c:196
 #41 0x000000010001541d in rary_each (ary=8600527360, sel=<value
 temporarily unavailable, due to optimizations>) at array.c:1064
 #42 0x0000000100141516 in rb_vm_dispatch (_vm=0x100f1e410,
 cache=0x100e52680, top=8599606848, self=8600527360, klass=0x20006d2c0,
 sel=0x100f4ca20, block=0x2009ab5e0, opt=0 '\0', argc=<value temporarily
 unavailable, due to optimizations>, argv=0x0) at dispatcher.cpp:159
 #43 0x000000010355a870 in ?? ()
 #44 0x0000000106fd7f11 in ?? ()
 #45 0x0000000100141516 in rb_vm_dispatch (_vm=0x100f1e410,
 cache=0x100e60a80, top=8596070016, self=8599606848, klass=0x20060b640,
 sel=0x1080133f0, block=0x0, opt=0 '\0', argc=<value temporarily
 unavailable, due to optimizations>, argv=0x0) at dispatcher.cpp:159
 #46 0x000000010355a870 in ?? ()
 #47 0x00000001035c112d in ?? ()
 #48 0x00000001001414d5 in rb_vm_dispatch (_vm=0x100f1e410,
 cache=0x100e6fcc0, top=8590069344, self=8596070016, klass=0x2005da620,
 sel=0x1081aae80, block=0x20096c9e0, opt=0 '\0', argc=<value temporarily
 unavailable, due to optimizations>, argv=0x7fff5fbf6298) at
 dispatcher.cpp:163
 #49 0x000000010355a870 in ?? ()
 #50 0x00000001035c137e in ?? ()
 #51 0x00000001001414ac in rb_vm_dispatch (_vm=0x100f1e410,
 cache=0x100e7bf00, top=8590069344, self=8590069344, klass=0x200020680,
 sel=0x1081aae80, block=0x20096c9e0, opt=2 '\002', argc=<value temporarily
 unavailable, due to optimizations>, argv=0x7fff5fbf6440) at
 dispatcher.cpp:165
 #52 0x000000010355a870 in ?? ()
 #53 0x0000000106f8e2cd in ?? ()
 #54 0x000000010014e288 in rb_vm_run (fname=<value temporarily unavailable,
 due to optimizations>, node=0x200656280, binding=<value temporarily
 unavailable, due to optimizations>, inside_eval=false) at vm.cpp:3787
 #55 0x0000000100047f85 in rb_load (fname=<value temporarily unavailable,
 due to optimizations>, wrap=<value temporarily unavailable, due to
 optimizations>) at load.c:95
 #56 0x000000010004803a in rb_f_load (rcv=<value temporarily unavailable,
 due to optimizations>, sel=<value temporarily unavailable, due to
 optimizations>, argc=<value temporarily unavailable, due to
 optimizations>, argv=<value temporarily unavailable, due to
 optimizations>) at load.c:120
 #57 0x00000001001415b9 in rb_vm_dispatch (_vm=0x100f1e410,
 cache=0x100e7c530, top=8597242336, self=8590038848, klass=0x200019700,
 sel=0x7fff82168c91, block=0x0, opt=0 '\0', argc=1, argv=0x7fff5fbf7e68) at
 dispatcher.cpp:435
 #58 0x000000010355a870 in ?? ()
 #59 0x0000000106f8d6e8 in ?? ()
 #60 0x000000010014221d in rb_vm_yield_under (klass=<value temporarily
 unavailable, due to optimizations>, self=8597242336, argc=<value
 temporarily unavailable, due to optimizations>, argv=0x200019700) at
 dispatcher.cpp:98
 #61 0x00000001000ff7ff in specific_eval (argc=<value temporarily
 unavailable, due to optimizations>, argv=0x0, klass=8597240960,
 self=8597242336) at vm_eval.c:372
 #62 0x000000010014156a in rb_vm_dispatch (_vm=0x100f1e410,
 cache=0x100e72c00, top=8596070016, self=8597242336, klass=0x2006f7c80,
 sel=0x100fd04d0, block=0x2006f1000, opt=0 '\0', argc=0, argv=0x0) at
 dispatcher.cpp:444
 #63 0x000000010355a870 in ?? ()
 #64 0x0000000106f8d805 in ?? ()
 #65 0x00000001001414fb in rb_vm_dispatch (_vm=0x100f1e410,
 cache=0x100e7a7c0, top=8596070016, self=8596070016, klass=0x2005da620,
 sel=0x1060d5910, block=0x2006f1000, opt=2 '\002', argc=<value temporarily
 unavailable, due to optimizations>, argv=0x7fff5fbf9dd8) at
 dispatcher.cpp:161
 #66 0x000000010355a870 in ?? ()
 #67 0x0000000106f8d2a8 in ?? ()
 #68 0x00000001001440d7 in rb_vm_yield_args (_vm=0x100f1e410, argc=<value
 temporarily unavailable, due to optimizations>, argv=0x2005da620) at
 dispatcher.cpp:100
 #69 0x00000001000fe1c8 in rb_yield (val=8597315392) at vm_eval.c:196
 #70 0x000000010001541d in rary_each (ary=8597268256, sel=<value
 temporarily unavailable, due to optimizations>) at array.c:1064
 #71 0x0000000100141516 in rb_vm_dispatch (_vm=0x100f1e410,
 cache=0x100e52680, top=8596070016, self=8597268256, klass=0x20006d2c0,
 sel=0x100f4ca20, block=0x2006feae0, opt=0 '\0', argc=<value temporarily
 unavailable, due to optimizations>, argv=0x0) at dispatcher.cpp:159
 #72 0x000000010355a870 in ?? ()
 #73 0x0000000106f8ccba in ?? ()
 #74 0x0000000100141516 in rb_vm_dispatch (_vm=0x100f1e410,
 cache=0x100e68be0, top=8596070016, self=8596070016, klass=0x2005da620,
 sel=0x7fff873a632e, block=0x0, opt=1 '\001', argc=<value temporarily
 unavailable, due to optimizations>, argv=0x0) at dispatcher.cpp:159
 #75 0x000000010355a870 in ?? ()
 #76 0x0000000106f8c2f7 in ?? ()
 #77 0x0000000100141516 in rb_vm_dispatch (_vm=0x100f1e410,
 cache=0x100e669c0, top=8596723040, self=8596070016, klass=0x2005da620,
 sel=0x1080133f0, block=0x0, opt=0 '\0', argc=<value temporarily
 unavailable, due to optimizations>, argv=0x0) at dispatcher.cpp:159
 #78 0x000000010355a870 in ?? ()
 #79 0x0000000106f8bd77 in ?? ()
 #80 0x0000000100141516 in rb_vm_dispatch (_vm=0x100f1e410,
 cache=0x100e6ab00, top=8595905888, self=8596723040, klass=0x2005b1d60,
 sel=0x7fff8081cb3c, block=0x0, opt=0 '\0', argc=<value temporarily
 unavailable, due to optimizations>, argv=0x0) at dispatcher.cpp:159
 #81 0x000000010355a870 in ?? ()
 #82 0x0000000106f7d48f in ?? ()
 #83 0x0000000100141516 in rb_vm_dispatch (_vm=0x100f1e410,
 cache=0x100e5c4f0, top=8590069344, self=8595905888, klass=0x2005b1ea0,
 sel=0x7fff808c6011, block=0x0, opt=0 '\0', argc=<value temporarily
 unavailable, due to optimizations>, argv=0x0) at dispatcher.cpp:159
 #84 0x000000010355a870 in ?? ()
 #85 0x000000010359e5ee in ?? ()
 #86 0x000000010014e288 in rb_vm_run (fname=<value temporarily unavailable,
 due to optimizations>, node=0x2003ff200, binding=<value temporarily
 unavailable, due to optimizations>, inside_eval=false) at vm.cpp:3787
 #87 0x0000000100047f85 in rb_load (fname=<value temporarily unavailable,
 due to optimizations>, wrap=<value temporarily unavailable, due to
 optimizations>) at load.c:95
 #88 0x000000010004803a in rb_f_load (rcv=<value temporarily unavailable,
 due to optimizations>, sel=<value temporarily unavailable, due to
 optimizations>, argc=<value temporarily unavailable, due to
 optimizations>, argv=<value temporarily unavailable, due to
 optimizations>) at load.c:120
 #89 0x00000001001415b9 in rb_vm_dispatch (_vm=0x100f1e410,
 cache=0x100e75c30, top=8590069344, self=8590069344, klass=0x200020680,
 sel=0x7fff82168c91, block=0x0, opt=2 '\002', argc=1, argv=0x7fff5fbff3a0)
 at dispatcher.cpp:435
 #90 0x000000010355a870 in ?? ()
 #91 0x000000010355a337 in ?? ()
 #92 0x000000010014e288 in rb_vm_run (fname=<value temporarily unavailable,
 due to optimizations>, node=0x2000ce6c0, binding=<value temporarily
 unavailable, due to optimizations>, inside_eval=false) at vm.cpp:3787
 #93 0x00000001000400f0 in ruby_run_node (n=0x2000ce6c0) at eval.c:211
 #94 0x0000000100000d28 in main ()
 }}}

-- 
Ticket URL: <http://www.macruby.org/trac/ticket/819>
MacRuby <http://macruby.org/>



More information about the MacRuby-devel mailing list