[ruby-core:98465] [Ruby master Bug#16904] rubygems: psych: superclass mismatch for class Mark (TypeError)
From:
nobu@...
Date:
2020-05-21 02:26:38 UTC
List:
ruby-core #98465
Issue #16904 has been updated by nobu (Nobuyoshi Nakada).
I can't see that error in 2.7 too.
```sh
$ for ruby in ruby2.{0..7}; do $ruby -rpsych -e 'p [RUBY_VERSION, Gem.load_yaml, Psych::VERSION]'; done
["2.0.0", true, "2.0.0"]
["2.1.9", true, "2.0.5"]
["2.2.10", true, "2.0.8"]
["2.3.8", true, "2.1.0"]
["2.4.10", true, "2.2.2"]
["2.5.8", true, "3.0.2"]
["2.6.6", true, "3.1.0"]
["2.7.1", true, "3.1.0"]
```
----------------------------------------
Bug #16904: rubygems: psych: superclass mismatch for class Mark (TypeError)
https://bugs.ruby-lang.org/issues/16904#change-85740
* Author: jaruga (Jun Aruga)
* Status: Open
* Priority: Normal
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
Is it possible to backport the following commits into Ruby?
Remove explicit `psych` activation
https://github.com/rubygems/rubygems/commit/1ccf0912a161d20e0c4a7b139fd76e8739a411ba
bundler: Remove explicit `psych` activation.
https://github.com/rubygems/rubygems/commit/88478bb56945ffa9868491cacd0bc74d9d73c848
It causes the following kind of error when psych is installed as not default gem but regular gem. It's a Fedora Ruby specific case. **This is not the case of Ruby built from source normally.**
```
$ cat test.rb
require 'psych'
Gem.load_yaml # <= The error happens.
```
```
$ ruby test.rb
/usr/lib64/gems/ruby/psych-3.1.0/psych.so: warning: already initialized constant Psych::Parser::ANY
...
/usr/share/gems/gems/psych-3.1.0/lib/psych/parser.rb:34:in `<class:Parser>': superclass mismatch for class Mark (TypeError)
```
It is possibly also related to https://github.com/ruby/psych/issues/386 .
Thank you.
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>