From: nobu@... Date: 2021-01-25T08:51:32+00:00 Subject: [ruby-dev:50997] [Ruby master Bug#17494] ruby is hanged when using activesupport + rspec + rspec-parameterized Issue #17494 has been updated by nobu (Nobuyoshi Nakada). This patch seems to avoid the loop for the time being. ```diff diff --git i/class.c w/class.c index a62ae669f84..61f3ece40f4 100644 --- i/class.c +++ w/class.c @@ -1369,7 +1369,7 @@ method_entry_i(ID key, VALUE value, void *data) if (me->def->type == VM_METHOD_TYPE_REFINED) { VALUE owner = me->owner; - me = rb_resolve_refined_method(Qnil, me); + me = rb_method_entry_with_refinements(owner, me->called_id, NULL); if (!me) return ID_TABLE_CONTINUE; if (!arg->recur && me->owner != owner) return ID_TABLE_CONTINUE; } ``` ---------------------------------------- Bug #17494: ruby is hanged when using activesupport + rspec + rspec-parameterized https://bugs.ruby-lang.org/issues/17494#change-90081 * Author: sue445 (Go Sueyoshi) * Status: Open * Priority: Normal * ruby -v: ruby 3.0.0p0 * Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN ---------------------------------------- # Example code ## Gemfile ```ruby # frozen_string_literal: true source "https://rubygems.org" git_source(:github) {|repo_name| "https://github.com/#{repo_name}" } gem "activesupport", "6.1.0" gem "rspec", "3.10.0" gem "rspec-parameterized", "0.4.2" ``` ## spec file ``` ruby require "active_support/all" require "rspec-parameterized" describe "CLI" do subject do # Expected error, but actual hunged here cli.foo # <- hunged here end it { expect { subject }.to raise_error } end xdescribe "GitlabMrRelease::Project" do describe "#api_version" do using RSpec::Parameterized::TableSyntax where(:api_endpoint, :expected) do "http://example.com/api/v4/" | 4 end with_them do # it { should eq expected } end end end ``` all codes are here. https://github.com/sue445/ruby_3_0_0_bug_report_20201231 # Expected spec is successful (This is the behavior up to ruby 2.7.2) # Actual hunged at line 7 -- https://bugs.ruby-lang.org/