New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Assertion failure in mrb_gc_mark #3699

Closed
clayton-shopify opened this Issue Jun 8, 2017 · 0 comments

Comments

Projects
None yet
1 participant
@clayton-shopify
Contributor

clayton-shopify commented Jun 8, 2017

The following input demonstrates a crash, when supplied to mirb:

_""
e
B
B
def method_missing(m,*)def i
end
d dup
end
t
B
d
d
p fiber=Fiber.new{yield}
fiber.resume
0.d
d

t
F
e
F
l
f
e
r
fiber.resume
lambda
0.d""
d
d

o
d
d fiber=Fiber.new{Fiber.yield;e}
fiber.resume.o l
fiber.resume
r
b
e""
e
e
t
d

Result:

Assertion failed: ((obj)->tt != MRB_TT_FREE), function mrb_gc_mark, file /Users/clayton/git/mruby/src/gc.c, line 713.
Abort trap: 6

This issue was reported by https://hackerone.com/ston3

This could be related to #3674.

@matz matz closed this in ebd6636 Jun 15, 2017

matz added a commit that referenced this issue Apr 13, 2018

No longer need to insert write barriers for fibers.
Those barriers are inserted to fix #3699 but all living fibers are
marked from `mark_context()` anyway now.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment