#711: MacRuby caught SIGSEGV when call Dispatch::Job#add many times -----------------------------------+---------------------------------------- Reporter: nagachika00@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: -----------------------------------+---------------------------------------- When I modify AO Bench script (see #710) to use Dispatch::Job, it caught SIGSEGV while executing blocks passed to Dispatch::Job#add. backtrace of trunk (revision 4089) with gcc is as follows. {{{ (gdb) run Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000000 [Switching to process 11054] 0x0000000000000000 in ?? () (gdb) where #0 0x0000000000000000 in ?? () #1 0x000000010013b8ad in __rb_vm_objc_dispatch [inlined] () at /Users/nagachika/opt/src/MacRuby-trunk/MacRuby/dispatcher.cpp:450 #2 0x000000010013b8ad in rb_vm_call_with_cache2 (cache=0x100e31450, block=0x0, self=8592087456, klass=<value temporarily unavailable, due to optimizations>, sel=0x7fff886e8b1e, argc=3, argv=0x104a84900) at dispatcher.cpp:904 #3 0x000000010006b3a2 in rb_class_new_instance_imp (klass=8592147264, sel=<value temporarily unavailable, due to optimizations>, argc=3, argv=0x104a84900) at object.c:1962 #4 0x00000001001481dc in rb_vm_dispatch (cache=0x100e5e870, top=8590786400, self=8592147264, sel=0x100e2ffa0, block=0x0, opt=0 '\000', argc=3) at dispatcher.cpp:418 #5 0x0000000102007d25 in ?? () #6 0x000000010013c68a in rb_vm_call_with_cache2 (cache=0x100e312c0, block=0x0, self=8590786400, klass=<value temporarily unavailable, due to optimizations>, sel=0x7fff8211c810, argc=<value temporarily unavailable, due to optimizations>, argv=0x104a85950) at dispatcher.cpp:144 #7 0x000000010006b233 in rb_class_new_instance0 [inlined] () at /Users/nagachika/opt/src/MacRuby-trunk/MacRuby/object.c:1958 #8 0x000000010006b233 in rb_class_new_instance_imp (klass=8592105184, sel=<value temporarily unavailable, due to optimizations>, argc=0, argv=0x104a85950) at object.c:1972 #9 0x00000001001481dc in rb_vm_dispatch (cache=0x1038ee910, top=8590064448, self=8592105184, sel=0x7fff8211c858, block=0x0, opt=0 '\000', argc=0) at dispatcher.cpp:418 #10 0x00000001020099b2 in ?? () #11 0x000000010013f3e3 in rb_vm_block_eval (b=0x2000e7e20, argc=<value temporarily unavailable, due to optimizations>, argv=0x2000e7e78) at dispatcher.cpp:95 #12 0x00000001001481dc in rb_vm_dispatch (cache=0x104839970, top=8592071616, self=8590902944, sel=0x7fff85bb1100, block=0x0, opt=0 '\000', argc=0) at dispatcher.cpp:418 #13 0x0000000102009f25 in ?? () #14 0x000000010013f3e3 in rb_vm_block_eval (b=0x2000e6e60, argc=<value temporarily unavailable, due to optimizations>, argv=0x2000e6eb8) at dispatcher.cpp:95 #15 0x000000010015bd4a in rb_rescue2 (b_proc=<value temporarily unavailable, due to optimizations>, data1=<value temporarily unavailable, due to optimizations>, r_proc=0x1000f2240 <rb_block_rescue>, data2=4304291472) at vm.cpp:3596 #16 0x00007fff84ef9b90 in _dispatch_worker_thread2 () #17 0x00007fff84ef94e8 in _pthread_wqthread () #18 0x00007fff84ef9385 in start_wqthread () }}} -- Ticket URL: <http://www.macruby.org/trac/ticket/711> MacRuby <http://macruby.org/>