Merged
Conversation
This path also dups the identity flag so we don't need to do that separately.
This seems to fix an issue locally running railsbench under indy mode that is superficially similar to jruby#7434. The issue occurs in our own Kernel#initialize_dup when running with JIT and indy enabled. The originator is a Hash#merge that does a dup of an empty hash, ultimately attempting to convert our UndefinedValue into a hash object for the dup/replace logic. It seems like there's a rogue keyword flag in the CallInfo at this point, such that it assumes the incoming hash is supposed to be used as kwargs. Since it is empty, it returns undefined which replaces the single hash argument passed in. That value then goes on to be to_hash'ed and blows up. It is unclear why this requires indy mode. There may be something broken with CallInfo clearing alonst some indy path, or the non-indy call path may not be using this single-argument kwarg-munging logic. See jruby#7434
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This seems to fix an issue locally running railsbench under indy mode
that is superficially similar to #7434.
The issue occurs in our own Kernel#initialize_dup when running with JIT
and indy enabled. The originator is a Hash#merge that does a dup of an
empty hash, ultimately attempting to convert our UndefinedValue into a
hash object for the dup/replace logic. It seems like there's a rogue
keyword flag in the CallInfo at this point, such that it assumes the
incoming hash is supposed to be used as kwargs. Since it is empty, it
returns undefined which replaces the single hash argument passed in.
That value then goes on to be to_hash'ed and blows up.
It is unclear why this requires indy mode. There may be something
broken with CallInfo clearing alonst some indy path, or the non-indy
call path may not be using this single-argument kwarg-munging logic.
See #7434