Skip to content

Psych syntax error changed in JRuby 9.2.13.0 #6365

@koic

Description

@koic

Environment Information

Provide at least:

  • % jruby -v
    jruby 9.2.13.0 (2.5.7) 2020-08-03 9a89c94 Java HotSpot(TM) 64-Bit Server VM 25.5-b02 on 1.8.0_05-b13 +jit [darwin-x86_64]
  • Darwin atelier.local 19.6.0 Darwin Kernel Version 19.6.0: Thu Jun 18 20:49:00 PDT 2020; root:xnu-6153.141.1~1/RELEASE_X86_64 x86_64

Expected Behavior

This is behavior of JRuby 9.2.12.0 (and MRI 2.5.8).

% ruby -v
jruby 9.2.12.0 (2.5.7) 2020-07-01 db01a49ba6 Java HotSpot(TM) 64-Bit Server VM 25.5-b02 on 1.8.0_05-b13 +jit [darwin-x86_64]
% ruby -ryaml -e "YAML.load('Exclude: **/*_old.rb')"
Psych::SyntaxError: (<unknown>): expected alphabetic or numeric character, but found *(42) while scanning an alias at line 1 column 11
         parse at org/jruby/ext/psych/PsychParser.java:246
  parse_stream at /Users/koic/.rbenv/versions/jruby-9.2.12.0/lib/ruby/stdlib/psych.rb:456
         parse at /Users/koic/.rbenv/versions/jruby-9.2.12.0/lib/ruby/stdlib/psych.rb:390
          load at /Users/koic/.rbenv/versions/jruby-9.2.12.0/lib/ruby/stdlib/psych.rb:277
        <main> at -e:1
% ruby -v
ruby 2.5.8p224 (2020-03-31 revision 67882) [x86_64-darwin17]
% ruby -ryaml -e "YAML.load('Exclude: **/*_old.rb')"
Traceback (most recent call last):
        4: from -e:1:in `<main>'
        3: from /Users/koic/.rbenv/versions/2.5.8/lib/ruby/2.5.0/psych.rb:263:in `load'
        2: from /Users/koic/.rbenv/versions/2.5.8/lib/ruby/2.5.0/psych.rb:350:in `parse'
        1: from /Users/koic/.rbenv/versions/2.5.8/lib/ruby/2.5.0/psych.rb:402:in `parse_stream'
/Users/koic/.rbenv/versions/2.5.8/lib/ruby/2.5.0/psych.rb:402:in `parse': (<unknown>): did not find expected alphabetic or numeric character while scanning an alias at line 1 column 10 (Psych::SyntaxError)

Both will raise Psych::SyntaxError.

Actual Behavior

This is behavior of JRuby 9.2.13.0.

% ruby -v
jruby 9.2.13.0 (2.5.7) 2020-08-03 9a89c94bcc Java HotSpot(TM) 64-Bit Server VM 25.5-b02 on 1.8.0_05-b13 +jit [darwin-x86_64]
% ruby -ryaml -e "YAML.load('Exclude: **/*_old.rb')"
Psych::BadAlias: Unknown alias: */*_old.rb
     visit_Psych_Nodes_Alias at /Users/koic/.rbenv/versions/jruby-9.2.13.0/lib/ruby/stdlib/psych/visitors/to_ruby.rb:325
                       fetch at org/jruby/RubyHash.java:1259
     visit_Psych_Nodes_Alias at /Users/koic/.rbenv/versions/jruby-9.2.13.0/lib/ruby/stdlib/psych/visitors/to_ruby.rb:325
                       visit at /Users/koic/.rbenv/versions/jruby-9.2.13.0/lib/ruby/stdlib/psych/visitors/visitor.rb:16
                      accept at /Users/koic/.rbenv/versions/jruby-9.2.13.0/lib/ruby/stdlib/psych/visitors/visitor.rb:6
                      accept at /Users/koic/.rbenv/versions/jruby-9.2.13.0/lib/ruby/stdlib/psych/visitors/to_ruby.rb:34
                 revive_hash at /Users/koic/.rbenv/versions/jruby-9.2.13.0/lib/ruby/stdlib/psych/visitors/to_ruby.rb:343
                  each_slice at org/jruby/RubyArray.java:1851
                 revive_hash at /Users/koic/.rbenv/versions/jruby-9.2.13.0/lib/ruby/stdlib/psych/visitors/to_ruby.rb:341
   visit_Psych_Nodes_Mapping at /Users/koic/.rbenv/versions/jruby-9.2.13.0/lib/ruby/stdlib/psych/visitors/to_ruby.rb:166
                       visit at /Users/koic/.rbenv/versions/jruby-9.2.13.0/lib/ruby/stdlib/psych/visitors/visitor.rb:16
                      accept at /Users/koic/.rbenv/versions/jruby-9.2.13.0/lib/ruby/stdlib/psych/visitors/visitor.rb:6
                      accept at /Users/koic/.rbenv/versions/jruby-9.2.13.0/lib/ruby/stdlib/psych/visitors/to_ruby.rb:34
  visit_Psych_Nodes_Document at /Users/koic/.rbenv/versions/jruby-9.2.13.0/lib/ruby/stdlib/psych/visitors/to_ruby.rb:317
                       visit at /Users/koic/.rbenv/versions/jruby-9.2.13.0/lib/ruby/stdlib/psych/visitors/visitor.rb:16
                      accept at /Users/koic/.rbenv/versions/jruby-9.2.13.0/lib/ruby/stdlib/psych/visitors/visitor.rb:6
                      accept at /Users/koic/.rbenv/versions/jruby-9.2.13.0/lib/ruby/stdlib/psych/visitors/to_ruby.rb:34
                     to_ruby at /Users/koic/.rbenv/versions/jruby-9.2.13.0/lib/ruby/stdlib/psych/nodes/node.rb:50
                        load at /Users/koic/.rbenv/versions/jruby-9.2.13.0/lib/ruby/stdlib/psych.rb:279
                      <main> at -e:1

Unexpectedly, JRuby 9.2.13.0 raises Psych::BadAlias.

I encountered this issue in RuboCop's CI build.
rubocop/rubocop#8588

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      pFad - Phonifier reborn

      Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

      Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


      Alternative Proxies:

      Alternative Proxy

      pFad Proxy

      pFad v3 Proxy

      pFad v4 Proxy