Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.Sign up
GitHub is where the world builds software
Millions of developers and companies build, ship, and maintain their software on GitHub — the largest and most advanced development platform in the world.
Indy call sites are not setting up frame for core methods #3842
JRuby 9k, all versions up through 9.1.
It seems that indy call sites are not setting up frames for methods that require it. We attempt to bind directly to the Java method for native core methods, which means bypassing the logic in the DynamicMethod that would push and pop a frame. In JRuby 1.7, we would see the target needed a frame and wrap it with framing logic. In 9k, this logic seems to have been missed, probably because all our jitted Ruby methods set up their own frames now (or this would have shown up much sooner).
The benchmark provided in #3841 is enough to trigger the error. Here is is for reference. I have not come up with a smaller reproduction.
Ok, looks like in 838c8d7 I removed support for CallConfiguration, which was our only way to know if core methods need a frame. So we have two options:
The short-term fix will be to avoid indy binding on a framed core method, but I'll still need a way to tell that a frame is required.