Bug #15288
RUBY_DEBUG=gc_stress dumps core
Description
zsh % RUBY_DEBUG=gc_stress lldb -- ./miniruby -vep (lldb) target create "./miniruby" Current executable set to './miniruby' (x86_64). (lldb) settings set -- target.run-args "-vep" (lldb) run Process 7103 launched: './miniruby' (x86_64) Process 7103 stopped * thread #1: tid = 0x68415, 0x0000000100233e17 miniruby`rb_postponed_job_register_one + 14 at vm_trace.c:1614, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0) frame #0: 0x0000000100233e17 miniruby`rb_postponed_job_register_one + 14 at vm_trace.c:1614 1611 } 1612 1613 /* unused: pjob->flags = flags; */ -> 1614 pjob->func = func; 1615 pjob->data = data; 1616 1617 RUBY_VM_SET_POSTPONED_JOB_INTERRUPT(ec); (lldb) bt * thread #1: tid = 0x68415, 0x0000000100233e17 miniruby`rb_postponed_job_register_one + 14 at vm_trace.c:1614, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0) * frame #0: 0x0000000100233e17 miniruby`rb_postponed_job_register_one + 14 at vm_trace.c:1614 frame #1: 0x0000000100233e09 miniruby`rb_postponed_job_register_one + 26 frame #2: 0x0000000100233def miniruby`rb_postponed_job_register_one(flags=<unavailable>, func=(miniruby`transient_heap_evacuate at transient_heap.c:726), data=0x0000000000000000) + 95 frame #3: 0x00000001000a5fa4 miniruby`gc_marks_finish(objspace=0x0000000100600390) + 740 at gc.c:5763 frame #4: 0x00000001000a7afd miniruby`gc_marks_rest(objspace=0x0000000100600390) + 477 at gc.c:5798 frame #5: 0x00000001000a86ba miniruby`gc_rest(objspace=0x0000000100600390) + 218 at gc.c:6684 frame #6: 0x00000001000a889c miniruby`garbage_collect(objspace=0x0000000100600390, reason=256) + 60 at gc.c:6558 frame #7: 0x00000001000a984d miniruby`newobj_slowpath_wb_unprotected(klass=4320248680, flags=12, v1=4298399200, v2=1, v3=4301269008, objspace=0x0000000100600390) + 253 at gc.c:1913 frame #8: 0x00000001000754d1 miniruby`Init_Encoding + 705 at encoding.c:99 frame #9: 0x00000001000baa7c miniruby`rb_call_inits + 44 at inits.c:28 frame #10: 0x000000010008f72f miniruby`ruby_setup + 143 at eval.c:74 frame #11: 0x000000010008f7a9 miniruby`ruby_init + 9 at eval.c:91 frame #12: 0x000000010023b34d miniruby`main(argc=<unavailable>, argv=<unavailable>) + 77 at main.c:41 frame #13: 0x00007fff9966a5ad libdyld.dylib`start + 1 frame #14: 0x00007fff9966a5ad libdyld.dylib`start + 1 (lldb)
Related issues
Updated by shyouhei (Shyouhei Urabe) about 2 years ago
- Related to Bug #12492: RUBY_DEBUG=gc_stress dumps core added
Updated by ko1 (Koichi Sasada) about 2 years ago
- Status changed from Open to Closed
Applied in changeset trunk|r65628.
initialize VM postponed_job first. [Bug #15288]
- inits.c: call
Init_vm_postponed_job
first because postponed_job is used by transient heap.