Project

General

Profile

Actions

Bug #15288

closed

RUBY_DEBUG=gc_stress dumps core

Added by shyouhei (Shyouhei Urabe) about 6 years ago. Updated about 6 years ago.

Status:
Closed
Target version:
ruby -v:
ruby 2.6.0dev (2018-11-07 trunk 65593) [x86_64-darwin15]
[ruby-core:89745]

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 1 (0 open1 closed)

Related to Ruby master - Bug #12492: RUBY_DEBUG=gc_stress dumps coreClosedActions
Actions #1

Updated by shyouhei (Shyouhei Urabe) about 6 years ago

  • Related to Bug #12492: RUBY_DEBUG=gc_stress dumps core added
Actions #2

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

Also available in: Atom PDF

Like0
Like0Like0