#1288: MacRuby displays "reference count underflow" message with rubyspec. ----------------------------------+----------------------------------------- Reporter: watson1978@… | Owner: lsansonetti@… Type: defect | Status: new Priority: minor | Milestone: Component: MacRuby | Keywords: ----------------------------------+----------------------------------------- Comment(by watson1978@…): I got a backtrace. {{{ (gdb) b auto_refcount_underflow_error Breakpoint 1 at 0x7fff82c7db84 (gdb) c Continuing. Breakpoint 1, 0x00007fff82c7db84 in auto_refcount_underflow_error () (gdb) thread apply all bt Thread 3 (process 8425): #0 0x00007fffffe00295 in __spin_lock () #1 0x00007fff82c83b82 in Auto::Admin::thread_cache_allocate () #2 0x00007fff82c8b0b2 in Auto::Zone::block_allocate () #3 0x00007fff82c76d72 in auto_zone_allocate_object () #4 0x000000010003d7d0 in rb_objc_newobj (size=<value temporarily unavailable, due to optimizations>) at gc.c:286 #5 0x00000001000ca6a2 in str_alloc [inlined] () at /Users/watson/src /macruby-trunk/string.c:224 #6 0x00000001000ca6a2 in rb_enc_str_new [inlined] () at /Users/watson/src /macruby-trunk/string.c:6294 #7 0x00000001000ca6a2 in rb_str_new (cstr=0x11b08adca "Just kidding", len=12) at string.c:6302 #8 0x000000011b392d9a in ?? () #9 0x0000000100141408 in rb_vm_block_eval (b=0x211c1bf00, argc=<value temporarily unavailable, due to optimizations>, argv=0x200039b00) at dispatcher.cpp:98 #10 0x0000000100154558 in rb_vm_thread_run (thread=8887845536) at vm.cpp:4925 #11 0x00007fff87a374f6 in _pthread_start () #12 0x00007fff87a373a9 in thread_start () Thread 2 (process 8425): #0 0x00007fff87a1712a in kevent () #1 0x00007fff87a18ffd in _dispatch_mgr_invoke () #2 0x00007fff87a18cd4 in _dispatch_queue_invoke () #3 0x00007fff87a187fe in _dispatch_worker_thread2 () #4 0x00007fff87a18128 in _pthread_wqthread () #5 0x00007fff87a17fc5 in start_wqthread () Thread 1 (process 8425): #0 0x00007fff82c7db84 in auto_refcount_underflow_error () #1 0x00007fff82c8ac11 in Auto::Zone::dec_refcount_small_medium () #2 0x00007fff82c8c75e in Auto::Zone::block_decrement_refcount () #3 0x00007fff82c7595f in auto_zone_release () #4 0x0000000103c0096e in ?? () #5 0x000000011b391fb1 in ?? () #6 0x0000000100140ab0 in rb_vm_yield_under (klass=<value temporarily unavailable, due to optimizations>, self=<value temporarily unavailable, due to optimizations>, argc=<value temporarily unavailable, due to optimizations>, argv=0x0) at dispatcher.cpp:98 #7 0x00000001000f64cf in specific_eval (argc=<value temporarily unavailable, due to optimizations>, argv=0x0, klass=8887662336, self=8887662880) at vm_eval.c:335 #8 0x000000010013f1f8 in rb_vm_dispatch (_vm=0x100e235c0, cache=0x100d90780, top=8590305312, self=8887662880, klass=0x211bef700, sel=0x100ee5570, block=0x211c0ab00, opt=0 '\0', argc=0, argv=0x0) at dispatcher.cpp:457 #9 0x0000000103c004e4 in ?? () #10 0x0000000103c6ab85 in ?? () #11 0x000000010013f55a in rb_vm_dispatch (_vm=0x100e235c0, cache=0x100d8d680, top=8887717632, self=8590305312, klass=0x2000b6280, sel=0x10507c6e0, block=0x211c0ab00, opt=0 '\0', argc=<value temporarily unavailable, due to optimizations>, argv=0x7fff5fbef7b8) at dispatcher.cpp:161 #12 0x0000000103c004e4 in ?? () #13 0x0000000103c6c672 in ?? () #14 0x00000001001426ce in rb_vm_yield_args (_vm=0xab0, argc=<value temporarily unavailable, due to optimizations>, argv=0x1) at dispatcher.cpp:100 #15 0x0000000100029256 in enum_all_func [inlined] () at /Users/watson/src /macruby-trunk/enum.c:868 #16 0x0000000100029256 in all_iter_i (i=<value temporarily unavailable, due to optimizations>, memo=0x7fff5fbf09f8, argc=<value temporarily unavailable, due to optimizations>, argv=<value temporarily unavailable, due to optimizations>) at enum.c:868 #17 0x0000000100142720 in rb_vm_yield_args (_vm=0x100e235c0, argc=1, argv=0x7fff5fbf0038) at dispatcher.cpp:1140 #18 0x00000001000f4ed8 in rb_yield (val=8887773504) at vm_eval.c:183 #19 0x00000001000059cd in rary_each (ary=8887843456, sel=<value temporarily unavailable, due to optimizations>) at array.c:1072 #20 0x000000010013f575 in rb_vm_dispatch (_vm=0x100e235c0, cache=0x100d7f840, top=0, self=8887843456, klass=0x2000684c0, sel=0x100e26620, block=0x211c1be80, opt=2 '\002', argc=<value temporarily unavailable, due to optimizations>, argv=0x0) at dispatcher.cpp:159 #21 0x00000001000f4abf in rb_objc_block_call (obj=8887843456, sel=0x100e26620, argc=0, argv=0x0, bl_proc=<value temporarily unavailable, due to optimizations>, data2=<value temporarily unavailable, due to optimizations>) at vm.h:656 #22 0x00000001000280c7 in enum_all (obj=8887843456, sel=<value temporarily unavailable, due to optimizations>) at enum.c:892 #23 0x000000010013f575 in rb_vm_dispatch (_vm=0x100e235c0, cache=0x100d688c0, top=8887717632, self=8887843456, klass=0x2000684c0, sel=0x100ecb0b0, block=0x20f7efd80, opt=0 '\0', argc=<value temporarily unavailable, due to optimizations>, argv=0x0) at dispatcher.cpp:159 #24 0x0000000103c004e4 in ?? () #25 0x0000000103c6c298 in ?? () #26 0x000000010013f50a in rb_vm_dispatch (_vm=0x100e235c0, cache=0x100d7d1c0, top=8887717632, self=8887717632, klass=0x200230740, sel=0x10507c6e0, block=0x0, opt=2 '\002', argc=<value temporarily unavailable, due to optimizations>, argv=0x7fff5fbf1960) at dispatcher.cpp:165 #27 0x0000000103c004e4 in ?? () #28 0x0000000103c71048 in ?? () #29 0x00000001001426ce in rb_vm_yield_args (_vm=0x608, argc=<value temporarily unavailable, due to optimizations>, argv=0x2) at dispatcher.cpp:100 #30 0x00000001000f4ed8 in rb_yield (val=8887774304) at vm_eval.c:183 #31 0x00000001000059cd in rary_each (ary=8887725440, sel=<value temporarily unavailable, due to optimizations>) at array.c:1072 #32 0x000000010013f575 in rb_vm_dispatch (_vm=0x100e235c0, cache=0x100d7f840, top=8887717632, self=8887725440, klass=0x2000684c0, sel=0x100e26620, block=0x20029a1e0, opt=0 '\0', argc=<value temporarily unavailable, due to optimizations>, argv=0x0) at dispatcher.cpp:159 #33 0x0000000103c004e4 in ?? () #34 0x0000000103c6d02b in ?? () #35 0x000000010013f575 in rb_vm_dispatch (_vm=0x100e235c0, cache=0x100d737c0, top=8590305312, self=8887717632, klass=0x200230740, sel=0x102ed73a0, block=0x0, opt=0 '\0', argc=<value temporarily unavailable, due to optimizations>, argv=0x0) at dispatcher.cpp:159 #36 0x0000000103c004e4 in ?? () #37 0x0000000103c2db6a in ?? () #38 0x000000010013f535 in rb_vm_dispatch (_vm=0x100e235c0, cache=0x100d6c280, top=8590067424, self=8590305312, klass=0x2000b6280, sel=0x103ef3d60, block=0x211bfe940, opt=0 '\0', argc=<value temporarily unavailable, due to optimizations>, argv=0x7fff5fbf5248) at dispatcher.cpp:163 #39 0x0000000103c004e4 in ?? () #40 0x0000000103c2dda1 in ?? () #41 0x000000010013f50a in rb_vm_dispatch (_vm=0x100e235c0, cache=0x100d96ec0, top=8590067424, self=8590067424, klass=0x200020040, sel=0x103ef3d60, block=0x211bfe940, opt=2 '\002', argc=<value temporarily unavailable, due to optimizations>, argv=0x7fff5fbf5400) at dispatcher.cpp:165 #42 0x0000000103c004e4 in ?? () #43 0x000000011b3907c5 in ?? () #44 0x0000000100157a58 in rb_vm_run (fname=0x211bf17c0 "/Users/watson/src /macruby-trunk/spec/frozen/core/thread/join_spec.rb", node=0x211bfcb00, binding=<value temporarily unavailable, due to optimizations>, inside_eval=<value temporarily unavailable, due to optimizations>) at vm.cpp:4233 #45 0x0000000100157de1 in RoxorVM::pop_outer () at /Users/watson/src /macruby-trunk/vm.cpp:5679 #46 ~Finally [inlined] () at /Users/watson/src/macruby-trunk/vm.cpp:5667 #47 0x0000000100157de1 in rb_vm_load (fname_str=0x211bf17c0 "/Users/watson/src/macruby-trunk/spec/frozen/core/thread/join_spec.rb", wrap=<value temporarily unavailable, due to optimizations>) at vm.cpp:5679 #48 0x000000010003979a in rb_f_load (rcv=<value temporarily unavailable, due to optimizations>, sel=<value temporarily unavailable, due to optimizations>, argc=<value temporarily unavailable, due to optimizations>, argv=<value temporarily unavailable, due to optimizations>) at load.c:115 #49 0x000000010013f24c in rb_vm_dispatch (_vm=0x100e235c0, cache=0x100d86a38, top=8887662880, self=8590038400, klass=0x200019b80, sel=0x7fff81ee5bb1, block=0x0, opt=0 '\0', argc=1, argv=0x7fff5fbf6e58) at dispatcher.cpp:448 #50 0x0000000103c004e4 in ?? () #51 0x0000000103c6aa68 in ?? () #52 0x0000000100140ab0 in rb_vm_yield_under (klass=<value temporarily unavailable, due to optimizations>, self=<value temporarily unavailable, due to optimizations>, argc=<value temporarily unavailable, due to optimizations>, argv=0x0) at dispatcher.cpp:98 #53 0x00000001000f64cf in specific_eval (argc=<value temporarily unavailable, due to optimizations>, argv=0x0, klass=8887662336, self=8887662880) at vm_eval.c:335 #54 0x000000010013f1f8 in rb_vm_dispatch (_vm=0x100e235c0, cache=0x100d90780, top=8590305312, self=8887662880, klass=0x211bef700, sel=0x100ee5570, block=0x211bf1440, opt=0 '\0', argc=0, argv=0x0) at dispatcher.cpp:457 #55 0x0000000103c004e4 in ?? () #56 0x0000000103c6ab85 in ?? () #57 0x000000010013f55a in rb_vm_dispatch (_vm=0x100e235c0, cache=0x100d8d680, top=8590305312, self=8590305312, klass=0x2000b6280, sel=0x10507c6e0, block=0x211bf1440, opt=2 '\002', argc=<value temporarily unavailable, due to optimizations>, argv=0x7fff5fbf8e28) at dispatcher.cpp:161 #58 0x0000000103c004e4 in ?? () #59 0x0000000103c68cc8 in ?? () #60 0x00000001001426ce in rb_vm_yield_args (_vm=0xab0, argc=<value temporarily unavailable, due to optimizations>, argv=0x1) at dispatcher.cpp:100 #61 0x00000001000f4ed8 in rb_yield (val=8590937056) at vm_eval.c:183 #62 0x00000001000059cd in rary_each (ary=8593243840, sel=<value temporarily unavailable, due to optimizations>) at array.c:1072 #63 0x000000010013f575 in rb_vm_dispatch (_vm=0x100e235c0, cache=0x100d7f840, top=8590305312, self=8593243840, klass=0x2000684c0, sel=0x100e26620, block=0x20031f340, opt=0 '\0', argc=<value temporarily unavailable, due to optimizations>, argv=0x0) at dispatcher.cpp:159 #64 0x0000000103c004e4 in ?? () #65 0x0000000103c686be in ?? () #66 0x000000010013f575 in rb_vm_dispatch (_vm=0x100e235c0, cache=0x100d90550, top=8590305312, self=8590305312, klass=0x2000b6280, sel=0x7fff8743d7d6, block=0x0, opt=1 '\001', argc=<value temporarily unavailable, due to optimizations>, argv=0x0) at dispatcher.cpp:159 #67 0x0000000103c004e4 in ?? () #68 0x0000000103c67d17 in ?? () #69 0x000000010013f575 in rb_vm_dispatch (_vm=0x100e235c0, cache=0x100d9fc80, top=8592973568, self=8590305312, klass=0x2000b6280, sel=0x102ed73a0, block=0x0, opt=0 '\0', argc=<value temporarily unavailable, due to optimizations>, argv=0x0) at dispatcher.cpp:159 #70 0x0000000103c004e4 in ?? () #71 0x0000000103c6754d in ?? () #72 0x000000010013f575 in rb_vm_dispatch (_vm=0x100e235c0, cache=0x100d7ab40, top=8590714208, self=8592973568, klass=0x2000be560, sel=0x7fff8095b9f4, block=0x0, opt=0 '\0', argc=<value temporarily unavailable, due to optimizations>, argv=0x0) at dispatcher.cpp:159 #73 0x0000000103c004e4 in ?? () #74 0x0000000103c55cf4 in ?? () #75 0x000000010013f575 in rb_vm_dispatch (_vm=0x100e235c0, cache=0x100d74278, top=8590067424, self=8590714208, klass=0x2000be640, sel=0x7fff80a04fb1, block=0x0, opt=0 '\0', argc=<value temporarily unavailable, due to optimizations>, argv=0x0) at dispatcher.cpp:159 #76 0x0000000103c004e4 in ?? () #77 0x0000000103c001be in ?? () #78 0x0000000100157a58 in rb_vm_run (fname=0x20004cea0 "/Users/watson/src /macruby-trunk/mspec/bin/mspec-ci", node=0x200064480, binding=<value temporarily unavailable, due to optimizations>, inside_eval=<value temporarily unavailable, due to optimizations>) at vm.cpp:4233 #79 0x00000001000311e0 in ruby_run_node (n=0x200064480) at eval.c:211 #80 0x0000000100000cf8 in main (argc=30, argv=0x100e1c060, envp=<value temporarily unavailable, due to optimizations>) at main.cpp:40 (gdb) }}} -- Ticket URL: <http://www.macruby.org/trac/ticket/1288#comment:5> MacRuby <http://macruby.org/>