Skip to content
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

Java exception escaping on MatchData#[] #2929

Closed
nirvdrum opened this issue Mar 11, 2023 · 1 comment
Closed

Java exception escaping on MatchData#[] #2929

nirvdrum opened this issue Mar 11, 2023 · 1 comment
Assignees

Comments

@nirvdrum
Copy link
Collaborator

I'm working on refreshing our tags for the MRI tests. While doing so, I ran into a situation where a Java exception is escaping into Ruby when indexing a MatchData object.

m = /(...)(...)(...)(...)?/.match("foobarbaz")
p m[3, -1]

On MRI 3.1.3:

> ruby -v bad-matchdata-aref.rb
ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e) [arm64-darwin22]
nil

On TruffleRuby 23.0.0-dev:

> jt ruby -v bad-matchdata-aref.rb
truffleruby 23.0.0-dev-671182fb*, like ruby 3.1.3, GraalVM CE JVM [aarch64-darwin]

truffleruby: an internal exception escaped out of the interpreter,
please report it to https://github.com/oracle/truffleruby/issues.

3 > 2 (java.lang.IllegalArgumentException)
        from java.util.Arrays.copyOfRange(Arrays.java:3782)
        from java.util.Arrays.copyOfRange(Arrays.java:3742)
        from org.truffleruby.core.regexp.MatchDataNodes$GetIndexNode.getIndex(MatchDataNodes.java:294)
        from org.truffleruby.core.regexp.MatchDataNodesFactory$GetIndexNodeGen.executeAndSpecialize(MatchDataNodesFactory.java:578)
        from org.truffleruby.core.regexp.MatchDataNodesFactory$GetIndexNodeGen.execute(MatchDataNodesFactory.java:522)
        from org.truffleruby.core.regexp.MatchDataNodes$GetIndexCoreMethodNode.getIndex(MatchDataNodes.java:451)
        from org.truffleruby.core.regexp.MatchDataNodesFactory$GetIndexCoreMethodNodeFactory$GetIndexCoreMethodNodeGen.executeAndSpecialize(MatchDataNodesFactory.java:1064)
        from org.truffleruby.core.regexp.MatchDataNodesFactory$GetIndexCoreMethodNodeFactory$GetIndexCoreMethodNodeGen.execute(MatchDataNodesFactory.java:1051)
        from org.truffleruby.language.RubyCoreMethodRootNode.execute(RubyCoreMethodRootNode.java:58)
bad-regexp-aref.rb:2:in `[]'
        from bad-regexp-aref.rb:2:in `<main>'
@horakivo horakivo self-assigned this Mar 15, 2023
@andrykonchin andrykonchin self-assigned this Mar 29, 2023
@andrykonchin
Copy link
Member

Fixed in fbbc027

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants