Issue #19254 has been updated by k0kubun (Takashi Kokubun).
Status changed from Open to Feedback
In addition to @mame 's point, can you report how to reproduce the issue by building
Ruby from a source or a tarball? e.g.
```
$ git clone --depth=1
https://github.com/ruby/ruby
$ cd ruby
$ ./autogen.sh
$ ./configure --enable-yjit --prefix="/opt/rubies/ruby" && make -j8
&& make install
$ git clone --depth=1
https://github.com/rspec/rspec-core
$ cd rspec-core
$ unset GEM_ROOT GEM_HOME GEM_PATH
$ export PATH="/opt/rubies/ruby/bin:${PATH}"
$ bundle install
$ bundle exec rspec spec/rspec/core/example_spec.rb
```
And it doesn't reproduce any problem.
```
$ cd rspec-core
$ git rev-parse HEAD
522b7727d02d9648c090b56fa68bbdc18a21c04d
$ ruby -v -e "p RbConfig::CONFIG['YJIT_SUPPORT']"
ruby 3.2.0dev (2022-12-23T17:24:55Z master ee60756495) [x86_64-linux]
"yes"
$ RUBYOPT=-v bundle exec rspec spec/rspec/core/example_spec.rb:472
ruby 3.2.0dev (2022-12-23T17:24:55Z master ee60756495) [x86_64-linux]
Run options:
include {:locations=>{"./spec/rspec/core/example_spec.rb"=>[472]}}
exclude {:ruby=>#<Proc: ./spec/spec_helper.rb:110>}
Randomized with seed 37258
RSpec::Core::Example
#run
memory leaks, see GH-321, GH-1921
releases references to the examples / their ivars
Finished in 0.0101 seconds (files took 0.09802 seconds to load)
1 example, 0 failures
Randomized with seed 37258
```
----------------------------------------
Bug #19254: Enabling YJIT configuration option breaks rspec-core test suite
https://bugs.ruby-lang.org/issues/19254#change-100781
* Author: vo.x (Vit Ondruch)
* Status: Feedback
* Priority: Normal
* ruby -v: ruby 3.2.0dev (2022-12-23 master c5eefb7f37) [x86_64-linux]
* Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN
----------------------------------------
In preparation for Ruby 3.2, we have enabled YJIT in Fedora:
https://src.fedoraproject.org/rpms/ruby/c/3c1be9f9c2c1d8679eebb9a185fefa15b…
Since that moment, rspec-core test suite started to fail (see the attached log for all
details):
~~~
... snip ...
1) RSpec::Core::Example#run memory leaks, see GH-321, GH-1921 releases references to the
examples / their ivars
Failure/Error: expect(get_all.call).to eq opts.fetch(:post_gc)
expected: []
got: ["after_all", "before_all"]
(compared using ==)
# ./spec/rspec/core/example_spec.rb:469:in `expect_gc'
# ./spec/rspec/core/example_spec.rb:492:in `block (4 levels) in <top
(required)>'
# ./spec/support/sandboxing.rb:16:in `block (3 levels) in <top
(required)>'
# ./spec/support/sandboxing.rb:7:in `block (2 levels) in <top (required)>'
Finished in 8.98 seconds (files took 0.47612 seconds to load)
2209 examples, 1 failure, 4 pending
~~~
Please note that the YJIT was not enabled during runtime, just the support was enabled.
Disabling the YJIT supports makes the test case pass.
[1]:
https://download.copr.fedorainfracloud.org/results/vondruch/ruby-3.2/fedora…
[2]:
https://copr.fedorainfracloud.org/coprs/vondruch/ruby-3.2/package/rubygem-r…
---Files--------------------------------
builder-live.log.gz (28.7 KB)
--
https://bugs.ruby-lang.org/