Skip to content

Segmentation fault on GC #44

@ksss

Description

@ksss

The below code failed.

Thread.new { GC.start }
# Assertion failed: ((obj)->tt != MRB_TT_FREE), function mrb_gc_mark, mruby/src/gc.c, line 676

I dived into sea of the codes...
But I didn't resolve this issue.

Maybe main thread was calling mrb_close.
But sub thread GC mark anything main thread object. (Maybe from mrb->c->stack?)
It was method object (RProc *) in my env. And already freed.
mrb_thread_context_free have not yet called when failed.

Is this an unavoidable issue?

Of cause below code worked.

Thread.new { GC.start }.join

mruby: 08a1dd2ac89333bd928a3300f712d1a7fb57e8ff
mruby-thread: 0e2e003

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions