Bug #11232
closedrb_compile_string from parse.y segfaults
Description
I'm using rb_compile_string
in my project and invoke it in a loop.
Unfortunately, it segfaults for me.
I've set up a repository with a minimum reproducible case:
https://github.com/kyrylo/rb_compile_string_bug
The bug can be observed with Ruby compiled with the default compiler
flags. While I was debugging this, I decided to compile the same
Ruby with -O0 -g
. Surprisingly, the bug did not occur with these
new flags.
Then, I've also tried to test this with this Ruby with the default
flags and it was working fine, without any segfaults:
ruby 2.3.0dev (2015-06-03 trunk 50741) [x86_64-linux]
.
I suspect that it's already been fixed, but I'm not sure.
Updated by nobu (Nobuyoshi Nakada) over 9 years ago
- Status changed from Open to Feedback
Is vparser
in parser_compile_string()
GCed?
Updated by kyrylo (Kyrylo Silin) over 9 years ago
Nobuyoshi Nakada wrote:
Is
vparser
inparser_compile_string()
GCed?
It looks like so. I'm not sure how to verify that exactly,
but when I disable the GC, it doesn't segfault anymore.
I have added a second example, with GC.disable
.
To run: ruby nobug.rb
.
Updated by kyrylo (Kyrylo Silin) over 9 years ago
Thanks for the tip!
I managed to fix the segfault with the following code:
I changed the function I call to rb_parser_compile_string
and passed a parser manually. Voila!
Feel free to close this, if you believe it's not a bug or
it's been fixed.
Updated by jeremyevans0 (Jeremy Evans) over 5 years ago
- Status changed from Feedback to Closed