[MacRuby] #1294: MacRuby crashes when loading files on the non-main thread
#1294: MacRuby crashes when loading files on the non-main thread ------------------------------------+--------------------------------------- Reporter: mrada@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: reduction ------------------------------------+--------------------------------------- Reduction is here: https://github.com/ferrous26/broken-macruby -- Ticket URL: <http://www.macruby.org/trac/ticket/1294> MacRuby <http://macruby.org/>
#1294: MacRuby crashes when loading files on the non-main thread ------------------------------------+--------------------------------------- Reporter: mrada@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: reduction ------------------------------------+--------------------------------------- Comment(by mrada@…): I will reduce this issue further when I have time this weekend. Since it segfaults before any tests actually run, it shouldn't be hard to go over the rspec startup process and see when it loads external code. -- Ticket URL: <http://www.macruby.org/trac/ticket/1294#comment:1> MacRuby <http://macruby.org/>
#1294: MacRuby crashes when loading files on the non-main thread ------------------------------------+--------------------------------------- Reporter: mrada@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: reduction ------------------------------------+--------------------------------------- Comment(by lsansonetti@…): Can you confirm that latest rspec cannot be used with MacRuby because of this bug? If yes, we need to add the 0.11-blocker keyword to this ticket. -- Ticket URL: <http://www.macruby.org/trac/ticket/1294#comment:2> MacRuby <http://macruby.org/>
#1294: MacRuby crashes when loading files on the non-main thread ------------------------------------+--------------------------------------- Reporter: mrada@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: reduction ------------------------------------+--------------------------------------- Comment(by mrada@…): Yes, even with the latest rspec this still crashes MacRuby, but only most of the time now. Sometimes the crash is due to a failed assertion, sometimes it crashes in LLVMLinkInJIT, rarely it fails while parsing the code, and a couple of times it actually loaded... The failed assertion is {{{ Assertion failed: ((size_t)pos < current_exceptions.size()), function pop_current_exception, file vm.cpp, line 3698. }}} I can attach crash reports if you think that would help. -- Ticket URL: <http://www.macruby.org/trac/ticket/1294#comment:3> MacRuby <http://macruby.org/>
#1294: MacRuby crashes when loading files on the non-main thread ------------------------------------+--------------------------------------- Reporter: mrada@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: reduction 0.11-blocker ------------------------------------+--------------------------------------- Changes (by lsansonetti@…): * keywords: reduction => reduction 0.11-blocker Comment: Adding 0.11-blocker keyword. -- Ticket URL: <http://www.macruby.org/trac/ticket/1294#comment:4> MacRuby <http://macruby.org/>
#1294: MacRuby crashes when loading files on the non-main thread ------------------------------------+--------------------------------------- Reporter: mrada@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: reduction 0.11-blocker ------------------------------------+--------------------------------------- Comment(by kouji@…): Now, reduction URL (https://github.com/ferrous26/broken-macruby) is 404 not found. -- Ticket URL: <http://www.macruby.org/trac/ticket/1294#comment:5> MacRuby <http://macruby.org/>
#1294: MacRuby crashes when loading files on the non-main thread ------------------------------------+--------------------------------------- Reporter: mrada@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: reduction 0.11-blocker ------------------------------------+--------------------------------------- Comment(by mrada@…): Yes, I meant to paste the reduction in here since it is smaller now. It still requires rspec and another gem be installed (I chose rest-cliet, but it crashes with other gems as well). First create a file called test.rb with the following contents: {{{ Thread.new do require 'rest-client' end describe 'Something' do it 'should pass a test' do 1.should == 1 end end }}} Then, on the command line: {{{ rspec test.rb }}} -- Ticket URL: <http://www.macruby.org/trac/ticket/1294#comment:6> MacRuby <http://macruby.org/>
#1294: MacRuby crashes when loading files on the non-main thread ------------------------------------+--------------------------------------- Reporter: mrada@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: reduction 0.11-blocker ------------------------------------+--------------------------------------- Comment(by kouji@…): I am trying to fix this issue. I think maybe require in thread does not work is specification for MacRuby, now. See below. Sometime I got a segv. {{{ $ cd /path/to/macruby $ cat issues/1294/test2.rb t = Thread.new { require "fileutils" } require "fileutils" t.join $ env VM_DISABLE_RBO=1 DYLD_LIBRARY_PATH=/Users/kouji/work/MacRuby/MacRuby ./macruby issues/1294/test2.rb (OK) $ env VM_DISABLE_RBO=1 DYLD_LIBRARY_PATH=/Users/kouji/work/MacRuby/MacRuby ./macruby issues/1294/test2.rb (NG) unknown: warning: already initialized constant FileUtils macruby(980,0x1035db000) malloc: *** error for object 0x104ea5280: pointer being freed was not allocated *** set a breakpoint in malloc_error_break to debug $ env VM_DISABLE_RBO=1 DYLD_LIBRARY_PATH=/Users/kouji/work/MacRuby/MacRuby ./macruby issues/1294/test2.rb (NG) objc[985]: Class FileUtils is implemented in both ?? and ??. One of the two will be used. Which one is undefined. unknown: warning: already initialized constant FileUtils objc[985]: +[FileUtils resolveClassMethod:private_module_function:] returned YES, but no new implementation of +[FileUtils private_module_function:] was found zsh: segmentation fault env VM_DISABLE_RBO=1 DYLD_LIBRARY_PATH=/Users/kouji/work/MacRuby/MacRuby }}} -- Ticket URL: <http://www.macruby.org/trac/ticket/1294#comment:7> MacRuby <http://macruby.org/>
#1294: MacRuby crashes when loading files on the non-main thread ------------------------------------+--------------------------------------- Reporter: mrada@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: reduction 0.11-blocker ------------------------------------+--------------------------------------- Comment(by lsansonetti@…): #require is definitely not thread-safe in MacRuby. -- Ticket URL: <http://www.macruby.org/trac/ticket/1294#comment:8> MacRuby <http://macruby.org/>
#1294: MacRuby crashes when loading files on the non-main thread ------------------------------------+--------------------------------------- Reporter: mrada@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: reduction 0.11-blocker ------------------------------------+--------------------------------------- Comment(by kouji@…): Replying to [comment:8 lsansonetti@…]:
#require is definitely not thread-safe in MacRuby.
I see, this issue is not a bug. So I think this ticket should be closed with invalid. -- Ticket URL: <http://www.macruby.org/trac/ticket/1294#comment:9> MacRuby <http://macruby.org/>
#1294: MacRuby crashes when loading files on the non-main thread ------------------------------------+--------------------------------------- Reporter: mrada@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: reduction 0.11-blocker ------------------------------------+--------------------------------------- Comment(by lsansonetti@…): Well I don't think MacRuby should crash, so I would be interested into fixing the thread-safety problem. It's especially important because it seems to break RSpec (which apparently does that?). -- Ticket URL: <http://www.macruby.org/trac/ticket/1294#comment:10> MacRuby <http://macruby.org/>
#1294: MacRuby crashes when loading files on the non-main thread ------------------------------------+--------------------------------------- Reporter: mrada@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: reduction 0.11-blocker ------------------------------------+--------------------------------------- Comment(by lsansonetti@…): Here is a full back trace of a crash running your snippet: {{{ (gdb) thread apply all bt Thread 3 (process 25683): #0 0x00007fff8701d976 in Auto::Zone::block_start () #1 0x00007fff8700aca6 in auto_zone_set_write_barrier () #2 0x00007fff82772625 in objc_assign_strongCast_gc () #3 0x00007fff88fa8bcf in __CFBasicHashRehash () #4 0x00007fff88fb4ebd in __CFBasicHashAddValue () #5 0x00007fff88fbc6b8 in CFBasicHashSetValue () #6 0x00007fff88fbc4d7 in CFDictionarySetValue () #7 0x000000010015ef91 in rb_intern_uchars (chars=0x10377eb10, chars_len=4, str=8590246688) at symbol.c:120 #8 0x000000010015f2cd in rb_intern_str (str=8590246688) at symbol.c:130 #9 0x0000000100079b04 in ruby_yyparse (parser=0x2000b0fe0) at parse.y:7655 #10 0x000000010008d44a in yycompile0 (arg=<value temporarily unavailable, due to optimizations>, tracing=<value temporarily unavailable, due to optimizations>) at parse.y:5000 #11 0x00000001000ad198 in load_file (parser=8590656832, fname=0x2000af040 "/Library/Frameworks/MacRuby.framework/Versions/0.11/usr/lib/ruby/1.9.2/fileutils.rb", script=0, opt=0x10377f6f0) at ruby.c:1118 #12 0x00000001000ad57c in rb_load_file (fname=0x2000af040 "/Library/Frameworks/MacRuby.framework/Versions/0.11/usr/lib/ruby/1.9.2/fileutils.rb") at ruby.c:1135 #13 0x0000000100155e59 in rb_vm_load (fname_str=0x2000af040 "/Library/Frameworks/MacRuby.framework/Versions/0.11/usr/lib/ruby/1.9.2/fileutils.rb", wrap=<value temporarily unavailable, due to optimizations>) at vm.cpp:5602 #14 0x00000001000362db in load_try (path=<value temporarily unavailable, due to optimizations>) at load.c:246 #15 0x000000010015264a in rb_rescue2 (b_proc=<value temporarily unavailable, due to optimizations>, data1=<value temporarily unavailable, due to optimizations>, r_proc=0x100036230 <load_rescue>, data2=8590657088) at vm.cpp:3648 #16 0x0000000100036a77 in rb_require_safe (fname=<value temporarily unavailable, due to optimizations>, safe=<value temporarily unavailable, due to optimizations>) at load.c:292 #17 0x000000010013cfd9 in rb_vm_dispatch (_vm=0x103431c90, cache=0x102daa700, top=8590061504, self=8590061504, klass=0x20001ee00, sel=0x100e28de0, block=0x0, opt=2 '\002', argc=<value temporarily unavailable, due to optimizations>, argv=0x103780ab0) at dispatcher.cpp:161 #18 0x0000000103200634 in ?? () #19 0x0000000103200b4d in ?? () #20 0x000000010013e109 in rb_vm_block_eval (b=0x103431c90, argc=<value temporarily unavailable, due to optimizations>, argv=0x20) at dispatcher.cpp:98 #21 0x0000000100153cf8 in rb_vm_thread_run (thread=8590081824) at vm.cpp:4856 #22 0x00007fff824684f6 in _pthread_start () #23 0x00007fff824683a9 in thread_start () Thread 2 (process 25683): #0 0x00007fff870165a6 in Auto::WriteBarrier::range_has_marked_cards () #1 0x00007fff87029944 in Auto::MemoryScanner::scan_retained_and_old_blocks () #2 0x00007fff87024a47 in Auto::Collector::check_roots () #3 0x00007fff870298b1 in Auto::MemoryScanner::scan () #4 0x00007fff8701e77d in Auto::Zone::collect () #5 0x00007fff87007a7e in auto_collect_internal () #6 0x00007fff870080bd in auto_collection_work () #7 0x00007fff8246b284 in _dispatch_call_block_and_release () #8 0x00007fff82449df2 in _dispatch_queue_drain () #9 0x00007fff82449c54 in _dispatch_queue_invoke () #10 0x00007fff824497fe in _dispatch_worker_thread2 () #11 0x00007fff82449128 in _pthread_wqthread () #12 0x00007fff82448fc5 in start_wqthread () Thread 1 (process 25683): #0 0x00007fff824471f0 in strlcat () #1 0x000000010006d1e5 in named_arg_gen (parser=0x2000b1520, id=12968, init=1) at parse.y:8896 #2 0x000000010007d8b2 in ruby_yyparse (parser=<value temporarily unavailable, due to optimizations>) at parse.y:3017 #3 0x000000010008d44a in yycompile0 (arg=<value temporarily unavailable, due to optimizations>, tracing=<value temporarily unavailable, due to optimizations>) at parse.y:5000 #4 0x00000001000ad198 in load_file (parser=8590659296, fname=0x2000afc80 "/Library/Frameworks/MacRuby.framework/Versions/0.11/usr/lib/ruby/1.9.2/fileutils.rb", script=0, opt=0x7fff5fbfe520) at ruby.c:1118 #5 0x00000001000ad57c in rb_load_file (fname=0x2000afc80 "/Library/Frameworks/MacRuby.framework/Versions/0.11/usr/lib/ruby/1.9.2/fileutils.rb") at ruby.c:1135 #6 0x0000000100155e59 in rb_vm_load (fname_str=0x2000afc80 "/Library/Frameworks/MacRuby.framework/Versions/0.11/usr/lib/ruby/1.9.2/fileutils.rb", wrap=<value temporarily unavailable, due to optimizations>) at vm.cpp:5602 #7 0x00000001000362db in load_try (path=<value temporarily unavailable, due to optimizations>) at load.c:246 #8 0x000000010015264a in rb_rescue2 (b_proc=<value temporarily unavailable, due to optimizations>, data1=<value temporarily unavailable, due to optimizations>, r_proc=0x100036230 <load_rescue>, data2=8590024064) at vm.cpp:3648 #9 0x0000000100036a77 in rb_require_safe (fname=<value temporarily unavailable, due to optimizations>, safe=<value temporarily unavailable, due to optimizations>) at load.c:292 #10 0x000000010013cfd9 in rb_vm_dispatch (_vm=0x100e230c0, cache=0x102000700, top=8590061504, self=8590061504, klass=0x20001ee00, sel=0x100e28de0, block=0x0, opt=2 '\002', argc=<value temporarily unavailable, due to optimizations>, argv=0x7fff5fbff908) at dispatcher.cpp:161 #11 0x0000000103200634 in ?? () #12 0x0000000103200162 in ?? () #13 0x0000000100155b36 in rb_vm_run (fname=0x2000a89a0 "t.rb", node=0x2000239a0, binding=<value temporarily unavailable, due to optimizations>, inside_eval=<value temporarily unavailable, due to optimizations>) at vm.cpp:4115 #14 0x000000010002dd20 in ruby_run_node (n=0x2000239a0) at eval.c:211 #15 0x00000001000e9ce8 in main (argc=2, argv=0x100e1bf50, envp=<value temporarily unavailable, due to optimizations>) at main.cpp:40 (gdb) }}} It seems to call into parse.y functions concurrently, however the parser is not thread-safe. We need to secure access to it. -- Ticket URL: <http://www.macruby.org/trac/ticket/1294#comment:11> MacRuby <http://macruby.org/>
#1294: MacRuby crashes when loading files on the non-main thread ------------------------------------+--------------------------------------- Reporter: mrada@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: reduction 0.11-blocker ------------------------------------+--------------------------------------- Comment(by mrada@…): I don't think rspec was loading things on threads, rspec-core does not seem to use threads anywhere. More likely that they start loading client code before they have loaded all their code, and because rspec takes a long time to load it was the easiest to have this issue with. Though, I don't see why this problem would not occur with people using autoload and threads: {{{ autoload :FileUtils, 'fileutils' autoload :JSON, 'json' autoload :MiniTest, 'minitest/unit' autoload :Base64, 'base64' autoload :Rake, 'rake' Thread.new { FileUtils JSON MiniTest Rake Base64 } Base64 Rake MiniTest JSON FileUtils }}} -- Ticket URL: <http://www.macruby.org/trac/ticket/1294#comment:12> MacRuby <http://macruby.org/>
#1294: MacRuby crashes when loading files on the non-main thread ------------------------------------+--------------------------------------- Reporter: mrada@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: reduction 0.11-blocker ------------------------------------+--------------------------------------- Comment(by mrada@…): Actually, rspec does use autoload in a couple of places, maybe that was the cause.... -- Ticket URL: <http://www.macruby.org/trac/ticket/1294#comment:13> MacRuby <http://macruby.org/>
#1294: MacRuby crashes when loading files on the non-main thread ------------------------------------+--------------------------------------- Reporter: mrada@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: reduction 0.11-blocker ------------------------------------+--------------------------------------- Comment(by watson1978@…): at least, it looks like it needs the exclusive control as following. {{{ #!diff diff --git a/vm.cpp b/vm.cpp index 6023920..df76396 100644 --- a/vm.cpp +++ b/vm.cpp @@ -795,6 +795,7 @@ extern "C" void * rb_vm_get_constant_cache(const char *name) { + RoxorCoreLock lock; return GET_CORE()->constant_cache_get(rb_intern(name)); } @@ -1543,8 +1544,10 @@ vm_alias_method(Class klass, Method method, ID name, bool noargs) SEL sel = rb_vm_id_to_sel(name, noargs ? 0 : 1); rb_vm_method_node_t *node = GET_CORE()->method_node_get(method); if (node != NULL) { + GET_CORE()->lock(); GET_CORE()->add_method(klass, sel, imp, node->ruby_imp, node->arity, node->flags, types); + GET_CORE()->unlock(); } else { class_replaceMethod(klass, sel, imp, types); @@ -2180,8 +2183,10 @@ prepare_method: imp = (IMP)data; } assert(objc_imp_types != NULL); + GET_CORE()->lock(); GET_CORE()->resolve_method(klass, sel, NULL, arity, flags, imp, m, objc_imp_types); + GET_CORE()->unlock(); } else { #if MACRUBY_STATIC }}} -- Ticket URL: <http://www.macruby.org/trac/ticket/1294#comment:14> MacRuby <http://macruby.org/>
#1294: MacRuby crashes when loading files on the non-main thread ------------------------------------+--------------------------------------- Reporter: mrada@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: reduction 0.11-blocker ------------------------------------+--------------------------------------- Comment(by kouji@…): I created a better patch for this. Now, I am compiling and checking this. {{{ #!diff diff --git a/vm.cpp b/vm.cpp index 5896ca6..f4d663f 100644 --- a/vm.cpp +++ b/vm.cpp @@ -795,6 +795,7 @@ extern "C" void * rb_vm_get_constant_cache(const char *name) { + RoxorCoreLock lock; return GET_CORE()->constant_cache_get(rb_intern(name)); } @@ -1543,6 +1544,7 @@ vm_alias_method(Class klass, Method method, ID name, bool noargs) SEL sel = rb_vm_id_to_sel(name, noargs ? 0 : 1); rb_vm_method_node_t *node = GET_CORE()->method_node_get(method); if (node != NULL) { + RoxorCoreLock lock; GET_CORE()->add_method(klass, sel, imp, node->ruby_imp, node->arity, node->flags, types); } @@ -2180,6 +2182,7 @@ prepare_method: imp = (IMP)data; } assert(objc_imp_types != NULL); + RoxorCoreLock lock; GET_CORE()->resolve_method(klass, sel, NULL, arity, flags, imp, m, objc_imp_types); } }}} -- Ticket URL: <http://www.macruby.org/trac/ticket/1294#comment:15> MacRuby <http://macruby.org/>
#1294: MacRuby crashes when loading files on the non-main thread ------------------------------------+--------------------------------------- Reporter: mrada@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: reduction 0.11-blocker ------------------------------------+--------------------------------------- Comment(by lsansonetti@…): Looking again, it seems that RoxorCore::copy_methods() needs to acquire the lock. However it's problematic as it calls class_getInstanceMethod() which may use the dynamic resolver (and create a deadlock). -- Ticket URL: <http://www.macruby.org/trac/ticket/1294#comment:16> MacRuby <http://macruby.org/>
#1294: MacRuby crashes when loading files on the non-main thread ------------------------------------+--------------------------------------- Reporter: mrada@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: reduction 0.11-blocker ------------------------------------+--------------------------------------- Comment(by lsansonetti@…): Following patch seems to fix the problem (for me, MBP quad-core), can someone else give it a try? {{{ diff --git a/vm.cpp b/vm.cpp index a959bf0..8480414 100644 --- a/vm.cpp +++ b/vm.cpp @@ -2464,6 +2464,8 @@ RoxorCore::copy_methods(Class from_class, Class to_class) Method *methods; unsigned int i, methods_count; + lock(); + // Copy existing Objective-C methods. methods = class_copyMethodList(from_class, &methods_count); if (methods != NULL) { @@ -2503,6 +2505,8 @@ RoxorCore::copy_methods(Class from_class, Class to_class) } } + unlock(); + // Force a resolving of these selectors on the target class. This must be // done outside the next loop since the resolver messes up the Core // structures. @@ -2512,6 +2516,8 @@ RoxorCore::copy_methods(Class from_class, Class to_class) class_getInstanceMethod(to_class, *iter); } + lock(); + // Now, let's really copy the lazy methods. std::vector<SEL> sels_to_add; for (std::vector<SEL>::iterator iter = sels_to_copy.begin(); @@ -2533,7 +2539,9 @@ RoxorCore::copy_methods(Class from_class, Class to_class) rb_vm_method_source_t *m_src = iter2->second; + unlock(); Method m = class_getInstanceMethod(to_class, sel); + lock(); if (m != NULL) { // The method already exists on the target class, we need to // JIT it. @@ -2568,6 +2576,8 @@ RoxorCore::copy_methods(Class from_class, Class to_class) method_source_sels.insert(std::make_pair(to_class, *i)); } #endif + + unlock(); } extern "C" }}} -- Ticket URL: <http://www.macruby.org/trac/ticket/1294#comment:17> MacRuby <http://macruby.org/>
#1294: MacRuby crashes when loading files on the non-main thread ------------------------------------+--------------------------------------- Reporter: mrada@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: reduction 0.11-blocker ------------------------------------+--------------------------------------- Comment(by watson1978@…): I tried your patch. [[BR]] Unfortunately, it seems to occur crashes yet. {{{ $ i=0; while true; do DYLD_LIBRARY_PATH=. ./macruby -I./lib ~/tmp/ticket/1294-test_require.rb; i=`expr $i + 1`; echo $i; done }}} When the invoked over 100 times, it seems to have crashed several times. {{{ Process: macruby [4681] Path: /Users/USER/*/macruby Identifier: macruby Version: ??? (???) Code Type: X86-64 (Native) Parent Process: zsh [2110] Date/Time: 2011-09-01 10:35:41.390 +0900 OS Version: Mac OS X 10.7.1 (11B26) Report Version: 9 Crashed Thread: 0 Dispatch queue: com.apple.main-thread Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000010 VM Regions Near 0x10: --> __TEXT 0000000100569000-000000010056a000 [ 4K] r-x/rwx SM=COW /Users/USER/* Application Specific Information: objc[4681]: garbage collection is ON Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 libstdc++.6.dylib 0x00007fff94d70a3f std::_Rb_tree_rotate_left(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*&) + 8 1 libstdc++.6.dylib 0x00007fff94d70bed std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::_Rb_tree_node_base&) + 284 2 libmacruby.1.9.2.dylib 0x00000001006cc9da std::_Rb_tree<unsigned long, std::pair<unsigned long const, ccache*>, std::_Select1st<std::pair<unsigned long const, ccache*> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, ccache*> > >::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<unsigned long const, ccache*> const&) + 106 (stl_tree.h:844) 3 libmacruby.1.9.2.dylib 0x00000001006ce7dd std::_Rb_tree<unsigned long, std::pair<unsigned long const, ccache*>, std::_Select1st<std::pair<unsigned long const, ccache*> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, ccache*> > >::_M_insert_unique(std::_Rb_tree_iterator<std::pair<unsigned long const, ccache*> >, std::pair<unsigned long const, ccache*> const&) + 397 (stl_tree.h:1008) 4 libmacruby.1.9.2.dylib 0x00000001006b7394 RoxorCore::constant_cache_get(unsigned long) + 260 (vm.cpp:788) 5 fileutils.rbo 0x00000001025661b0 0x102549000 + 119216 6 fileutils.rbo 0x000000010254abac MREP_211FE1EE56634397A16501F3704E7C18 + 12 7 libmacruby.1.9.2.dylib 0x00000001006c9160 rb_vm_dln_load + 128 (vm.h:1130) 8 libmacruby.1.9.2.dylib 0x0000000100653f34 dln_load + 493 (dln.c:132) 9 libmacruby.1.9.2.dylib 0x00000001005a1901 rb_require_safe + 253 (load.c:298) 10 libmacruby.1.9.2.dylib 0x00000001005a12d7 rb_f_require + 32 (load.c:145) 11 libmacruby.1.9.2.dylib 0x00000001005a12fa rb_f_require_imp + 33 (load.c:151) 12 libmacruby.1.9.2.dylib 0x00000001006ab78a rb_vm_dispatch + 5773 (dispatcher.cpp:161) 13 ??? 0x00000001023ee634 0 + 4332643892 14 ??? 0x00000001023ee162 0 + 4332642658 15 libmacruby.1.9.2.dylib 0x00000001006ca996 rb_vm_run + 470 (vm.cpp:4135) 16 libmacruby.1.9.2.dylib 0x0000000100598998 ruby_run_node + 93 (eval.c:212) 17 macruby 0x0000000100569be3 main + 173 (main.cpp:40) 18 macruby 0x00000001005699ec start + 52 }}} -- Ticket URL: <http://www.macruby.org/trac/ticket/1294#comment:18> MacRuby <http://macruby.org/>
participants (1)
-
MacRuby