[MacRuby] #871: Segfault occurs when access to variable within Blocks of Thread and Loop.

MacRuby ruby-noreply at macosforge.org
Mon Aug 23 12:34:46 PDT 2010


#871: Segfault occurs when access to variable within Blocks of Thread and Loop.
----------------------------------+-----------------------------------------
 Reporter:  watson1978@…          |       Owner:  lsansonetti@…        
     Type:  defect                |      Status:  new                  
 Priority:  blocker               |   Milestone:                       
Component:  MacRuby               |    Keywords:                       
----------------------------------+-----------------------------------------

Comment(by martinlagardette@…):

 Funny enough, I can reproduce with `VM_DISABLE_RBO`, or
 `DYLD_LIBRARY_PATH`, but if both are set, everything works. If I use the
 macruby in the project dir instead of the installed one, it works with any
 of them, but not without any env var. Boggles the mind...
 {{{
 $> VM_DISABLE_RBO=1 macruby test_var.rb
 ** case 1
 ** case 2
 Segmentation fault
 $> DYLD_LIBRARY_PATH=~/Documents/Projets/MacRuby macruby test_var.rb
 ** case 1
 ** case 2
 Segmentation fault
 $> VM_DISABLE_RBO=1 DYLD_LIBRARY_PATH=~/Documents/Projets/MacRuby macruby
 test_var.rb
 ** case 1
 ** case 2
 $> ~/Documents/Projets/MacRuby/macruby test_var.rb
 ** case 1
 ** case 2
 Segmentation fault
 $> VM_DISABLE_RBO=1 ~/Documents/Projets/MacRuby/macruby test_var.rb
 ** case 1
 ** case 2
 $> DYLD_LIBRARY_PATH=~/Documents/Projets/MacRuby
 ~/Documents/Projets/MacRuby/macruby test_var.rb
 ** case 1
 ** case 2
 $>
 }}}

 With GC_DISABLE, it's kind of random:
 {{{
 $> GC_DISABLE=1 macruby test_var.rb
 ** case 1
 ** case 2
 $> GC_DISABLE=1 macruby test_var.rb
 ** case 1
 ** case 2
 $> GC_DISABLE=1 macruby test_var.rb
 ** case 1
 ** case 2
 Segmentation fault
 $>
 }}}

 It seems to come from the class:
 {{{
 (gdb) p (char *)class_getName(0xfffda5e8207b8b48)
 warning: Trying to look up "char" in 'this' but 'this' is not an aggregate
 warning: Trying to look up "class_getName" in 'this' but 'this' is not an
 aggregate

 Program received signal EXC_BAD_ACCESS, Could not access memory.
 Reason: 13 at address: 0x0000000000000000
 0x00007fff87291ef0 in _class_getName ()
 }}}

 Also, I did `rake clean; rake; rake install` before trying.

-- 
Ticket URL: <http://www.macruby.org/trac/ticket/871#comment:2>
MacRuby <http://macruby.org/>



More information about the macruby-tickets mailing list