#551: NSThread.alloc.initWithTarget segfaulting -------------------------------------+-------------------------------------- Reporter: mattaimonetti@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: MacRuby 0.5 Component: MacRuby | Keywords: -------------------------------------+-------------------------------------- I can't seem to get the same stack trace twice, here is the code: {{{ framework 'Foundation' class ExpensiveCalculation def start(to_process) loop{ print '*' } end end calculation = ExpensiveCalculation.new thread = NSThread.alloc.initWithTarget(calculation, selector:'start:', object:'dummy_obj') thread.start 1.upto(10_000) do print '.' end thread.dummy exit }}} Disabling the GC makes the crash even more obvious. example of a stack trace: {{{ Stack dump: 0. Running pass 'Global Value Numbering' on function '@__ruby_scope3' objc[14056]: garbage collection is ON Thread 0: Dispatch queue: com.apple.main-thread 0 libmacruby.dylib 0x0000000100506bc3 llvm::RegsForValue::getCopyToRegs(llvm::SDValue, llvm::SelectionDAG&, llvm::DebugLoc, llvm::SDValue&, llvm::SDValue*) const + 355 1 libmacruby.dylib 0x000000010050dda9 llvm::SelectionDAGLowering::CopyValueToVirtualRegister(llvm::Value*, unsigned int) + 1001 2 libmacruby.dylib 0x00000001005103d9 llvm::SelectionDAGISel::LowerArguments(llvm::BasicBlock*) + 3625 3 libmacruby.dylib 0x0000000100548a53 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function&, llvm::MachineFunction&, llvm::MachineModuleInfo*, llvm::DwarfWriter*, llvm::TargetInstrInfo const&) + 3123 4 libmacruby.dylib 0x000000010054943d llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) + 1581 5 libmacruby.dylib 0x000000010062240b llvm::MachineFunctionPass::runOnFunction(llvm::Function&) + 91 6 libmacruby.dylib 0x00000001008d9c3a llvm::FPPassManager::runOnFunction(llvm::Function&) + 458 7 libmacruby.dylib 0x00000001008da254 llvm::FunctionPassManagerImpl::run(llvm::Function&) + 164 8 libmacruby.dylib 0x00000001008da592 llvm::FunctionPassManager::run(llvm::Function&) + 82 9 libmacruby.dylib 0x00000001005a774a llvm::JIT::runJITOnFunctionUnlocked(llvm::Function*, llvm::MutexGuard const&) + 42 10 libmacruby.dylib 0x00000001005a8bef llvm::JIT::getPointerToFunction(llvm::Function*) + 943 11 libmacruby.dylib 0x0000000100179ac5 RoxorCore::compile(llvm::Function*) + 149 (vm.cpp:486) 12 libmacruby.dylib 0x0000000100162d0e rb_vm_prepare_block + 1198 (dispatcher.cpp:1725) 13 ??? 0x00000001011102bf 0 + 4312859327 14 libmacruby.dylib 0x0000000100040f49 ruby_run_node + 73 (eval.c:199) 15 macruby 0x0000000100000dd8 main + 152 (main.cpp:42) 16 macruby 0x0000000100000d34 start + 52 Thread 1: 0 libSystem.B.dylib 0x00007fff8650d9da __workq_kernreturn + 10 1 libSystem.B.dylib 0x00007fff8650ddec _pthread_wqthread + 917 2 libSystem.B.dylib 0x00007fff8650da55 start_wqthread + 13 Thread 2: Dispatch queue: com.apple.libdispatch-manager 0 libSystem.B.dylib 0x00007fff8650cbba kevent + 10 1 libSystem.B.dylib 0x00007fff8650ea85 _dispatch_mgr_invoke + 154 2 libSystem.B.dylib 0x00007fff8650e75c _dispatch_queue_invoke + 185 3 libSystem.B.dylib 0x00007fff8650e286 _dispatch_worker_thread2 + 244 4 libSystem.B.dylib 0x00007fff8650dbb8 _pthread_wqthread + 353 5 libSystem.B.dylib 0x00007fff8650da55 start_wqthread + 13 Thread 3: 0 libSystem.B.dylib 0x00007fff8650d9da __workq_kernreturn + 10 1 libSystem.B.dylib 0x00007fff8650ddec _pthread_wqthread + 917 2 libSystem.B.dylib 0x00007fff8650da55 start_wqthread + 13 Thread 4 Crashed: 0 libmacruby.dylib 0x000000010070147d (anonymous namespace)::GVN::iterateOnFunction(llvm::Function&) + 3261 1 libmacruby.dylib 0x0000000100701aac (anonymous namespace)::GVN::runOnFunction(llvm::Function&) + 300 2 libmacruby.dylib 0x00000001008d9c3a llvm::FPPassManager::runOnFunction(llvm::Function&) + 458 3 libmacruby.dylib 0x00000001008da254 llvm::FunctionPassManagerImpl::run(llvm::Function&) + 164 4 libmacruby.dylib 0x00000001008da592 llvm::FunctionPassManager::run(llvm::Function&) + 82 5 libmacruby.dylib 0x0000000100179ab8 RoxorCore::compile(llvm::Function*) + 136 (vm.cpp:486) 6 libmacruby.dylib 0x0000000100162d0e rb_vm_prepare_block + 1198 (dispatcher.cpp:1725) 7 ??? 0x00000001011107eb 0 + 4312860651 8 libSystem.B.dylib 0x00007fff8652cf8e _pthread_start + 331 9 libSystem.B.dylib 0x00007fff8652ce41 thread_start + 13 }}} -- Ticket URL: <http://www.macruby.org/trac/ticket/551> MacRuby <http://macruby.org/>