[MacRuby-devel] [MacRuby] #551: NSThread.alloc.initWithTarget segfaulting
MacRuby
ruby-noreply at macosforge.org
Mon Jan 11 19:42:06 PST 2010
#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/>
More information about the MacRuby-devel
mailing list