Actions
Bug #15288
closedRUBY_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)
Updated by shyouhei (Shyouhei Urabe) about 6 years ago
- Related to Bug #12492: RUBY_DEBUG=gc_stress dumps core added
Updated by ko1 (Koichi Sasada) about 6 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.
Actions
Like0
Like0Like0