[MacRuby] #1283: Segfault occurs when gets the busy loop with some threads.

MacRuby ruby-noreply at macosforge.org
Wed May 18 03:47:12 PDT 2011


#1283: Segfault occurs when gets the busy loop with some threads.
----------------------------------+-----------------------------------------
 Reporter:  watson1978@…          |       Owner:  lsansonetti@…        
     Type:  defect                |      Status:  new                  
 Priority:  blocker               |   Milestone:                       
Component:  MacRuby               |    Keywords:                       
----------------------------------+-----------------------------------------
 Test Script:
 {{{
 #!ruby
 c1 = c2 = 0
 t1 = Thread.new {
   loop { c1 += 1 }
 }

 t2 = Thread.new {
   loop { c2 += 1 }
 }.join(1)
 }}}

 BackTrace:
 {{{
 Program received signal EXC_BAD_ACCESS, Could not access memory.
 Reason: 13 at address: 0x0000000000000000
 [Switching to process 74301 thread 0x2307]
 0x00000001016007b6 in ?? ()
 (gdb) thread apply all bt

 Thread 4 (process 74301):
 #0  0x00000001016007b6 in ?? ()
 #1  0x0000000101601324 in ?? ()
 #2  0x00000001016013e1 in ?? ()
 #3  0x0000000100133dff in __rb_vm_bcall [inlined] () at /Users/watson/src
 /macruby-trunk/dispatcher.cpp:98
 #4  0x0000000100133dff in vm_block_eval [inlined] () at /Users/watson/src
 /macruby-trunk/dispatcher.cpp:1248
 #5  0x0000000100133dff in rb_vm_yield_args () at dispatcher.cpp:1305
 #6  0x00000001000daa39 in rb_vm_yield (argc=1, argv=0x1017da908) at
 vm.h:700
 #7  0x00000001000daa0c in rb_yield (val=3053733) at vm_eval.c:183
 #8  0x000000010004c9a6 in int_dotimes (num=4000000001, sel=0x100fef140) at
 numeric.c:3241
 #9  0x000000010012d8e8 in __rb_vm_rcall [inlined] () at /Users/watson/src
 /macruby-trunk/dispatcher.cpp:159
 #10 0x000000010012d8e8 in ruby_dispatch [inlined] () at /Users/watson/src
 /macruby-trunk/dispatcher.cpp:466
 #11 0x000000010012d8e8 in rb_vm_dispatch () at dispatcher.cpp:886
 #12 0x0000000101600834 in ?? ()
 #13 0x0000000101600f99 in ?? ()
 #14 0x0000000100131d43 in __rb_vm_bcall [inlined] () at /Users/watson/src
 /macruby-trunk/dispatcher.cpp:98
 #15 0x0000000100131d43 in vm_block_eval [inlined] () at /Users/watson/src
 /macruby-trunk/dispatcher.cpp:1248
 #16 0x0000000100131d43 in rb_vm_block_eval (b=0x2000a5d00, argc=0,
 argv=0x0) at dispatcher.cpp:1255
 #17 0x000000010014c5af in rb_vm_thread_run (thread=8590561088) at
 vm.cpp:4917
 #18 0x00007fff85cb24f6 in _pthread_start ()
 #19 0x00007fff85cb23a9 in thread_start ()

 Thread 3 (process 74301):
 #0  0x00007fff88329912 in _class_getMethod ()
 #1  0x00007fff88329841 in look_up_method ()
 #2  0x000000010012c3ea in rb_vm_dispatch () at dispatcher.cpp:635
 #3  0x0000000101600834 in ?? ()
 #4  0x0000000101601324 in ?? ()
 #5  0x0000000101601071 in ?? ()
 #6  0x0000000100133dff in __rb_vm_bcall [inlined] () at /Users/watson/src
 /macruby-trunk/dispatcher.cpp:98
 #7  0x0000000100133dff in vm_block_eval [inlined] () at /Users/watson/src
 /macruby-trunk/dispatcher.cpp:1248
 #8  0x0000000100133dff in rb_vm_yield_args () at dispatcher.cpp:1305
 #9  0x00000001000daa39 in rb_vm_yield (argc=0, argv=0x0) at vm.h:700
 #10 0x00000001000da9f8 in rb_yield (val=6) at vm_eval.c:181
 #11 0x00000001000dad03 in loop_i () at vm_eval.c:229
 #12 0x0000000100148063 in rb_rescue2 (b_proc=0x1000dacea <loop_i>,
 data1=0, r_proc=0, data2=0) at vm.cpp:3752
 #13 0x00000001000dada3 in rb_f_loop (rcv=8590064992, sel=0x100fe3eb0) at
 vm_eval.c:259
 #14 0x000000010012d8e8 in __rb_vm_rcall [inlined] () at /Users/watson/src
 /macruby-trunk/dispatcher.cpp:159
 #15 0x000000010012d8e8 in ruby_dispatch [inlined] () at /Users/watson/src
 /macruby-trunk/dispatcher.cpp:466
 #16 0x000000010012d8e8 in rb_vm_dispatch () at dispatcher.cpp:886
 #17 0x0000000101600834 in ?? ()
 #18 0x0000000101600e7a in ?? ()
 #19 0x0000000100131d43 in __rb_vm_bcall [inlined] () at /Users/watson/src
 /macruby-trunk/dispatcher.cpp:98
 #20 0x0000000100131d43 in vm_block_eval [inlined] () at /Users/watson/src
 /macruby-trunk/dispatcher.cpp:1248
 #21 0x0000000100131d43 in rb_vm_block_eval (b=0x200098ac0, argc=0,
 argv=0x0) at dispatcher.cpp:1255
 #22 0x000000010014c5af in rb_vm_thread_run (thread=8590298752) at
 vm.cpp:4917
 #23 0x00007fff85cb24f6 in _pthread_start ()
 #24 0x00007fff85cb23a9 in thread_start ()

 Thread 2 (process 74301):
 #0  0x00007fff85c92f4a in __workq_kernreturn ()
 #1  0x00007fff85c9335c in _pthread_wqthread ()
 #2  0x00007fff85c92fc5 in start_wqthread ()

 Thread 1 (process 74301):
 #0  0x000000010003462b in rb_node_release (node=0x20005d800) at gc.c:335
 #1  0x0000000100034836 in rb_node_release (node=0x20005d7c0) at gc.c:355
 #2  0x000000010003485f in rb_node_release (node=0x20004d3c0) at gc.c:394
 #3  0x000000010003488a in rb_node_release (node=0x20004c400) at gc.c:413
 #4  0x0000000100034829 in rb_node_release (node=0x20005c4c0) at gc.c:345
 #5  0x000000010003488a in rb_node_release (node=0x20003c4a0) at gc.c:413
 #6  0x0000000100034829 in rb_node_release (node=0x20004c800) at gc.c:345
 #7  0x000000010003485f in rb_node_release (node=0x20005e140) at gc.c:394
 #8  0x0000000100034836 in rb_node_release (node=0x20007c800) at gc.c:355
 #9  0x0000000100034843 in rb_node_release (node=0x20007c840) at gc.c:361
 #10 0x000000010003488a in rb_node_release (node=0x200099a40) at gc.c:413
 #11 0x000000010014967c in rb_vm_run (fname=0x200088e40
 "/Users/watson/tmp/test_thread.rb", node=0x200099a40, binding=0x0,
 inside_eval=false) at vm.cpp:4238
 #12 0x00000001000280e0 in ruby_run_node (n=0x200099a40) at eval.c:211
 #13 0x0000000100000be3 in main (argc=3, argv=0x100f1c050,
 envp=0x7fff5fbfdeb8) at main.cpp:40
 Current language:  auto; currently c
 (gdb)
 }}}

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



More information about the macruby-tickets mailing list