From: shyouhei@... Date: 2021-01-25T00:42:09+00:00 Subject: [ruby-dev:50996] [Ruby master Bug#17494] ruby is hanged when using activesupport + rspec + rspec-parameterized Issue #17494 has been updated by shyouhei (Shyouhei Urabe). @alpaca-pc Thannk you, I can reproduce that also. ``` zsh % LC_ALL=C gdb --args ./miniruby ~/tmp.rb GNU gdb (Ubuntu 8.2-0ubuntu1~18.04) 8.2 Copyright (C) 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: . Find the GDB manual and other documentation resources online at: . For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from ./miniruby...done. (gdb) run Starting program: /miniruby /tmp.rb [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". # <<<<<<< Yes, I can reproduce ^C Program received signal SIGINT, Interrupt. search_method_protect (defined_class_ptr=0x0, id=30865, klass=93824998598240) at vm_method.c:986 warning: Source file is more recent than executable. 986 if (defined_class_ptr) *defined_class_ptr = klass; (gdb) bt #0 search_method_protect (defined_class_ptr=0x0, id=30865, klass=93824998598240) at vm_method.c:986 #1 resolve_refined_method (refinements=8, me=, defined_class_ptr=0x0) at vm_method.c:1256 #2 0x00005555555ad1fe in method_entry_i (key=30865, value=93824998597680, data=0x7fffffffc3d0) at class.c:1365 #3 0x00005555557b6f90 in rb_id_table_foreach (tbl=0x555555c97120, func=func@entry=0x5555555ad1b0 , data=data@entry=0x7fffffffc3d0) at symbol.c:493 #4 0x00005555555adbf7 in add_instance_method_list (me_arg=0x7fffffffc3d0, mod=93824999286960) at class.c:1386 #5 class_instance_method_list (argc=, argv=, mod=93824999286960, obj=, func=0x5555555ad2e0 ) at class.c:1422 #6 0x00005555558025c0 in vm_call_cfunc_with_frame (ec=0x555555b51790, reg_cfp=0x7ffff7fcafa0, calling=) at vm_insnhelper.c:2898 #7 0x0000555555810806 in vm_sendish (method_explorer=, block_handler=, cd=, reg_cfp=, ec=) at vm_callinfo.h:336 #8 vm_exec_core (ec=0x3, initial=93824998597000) at insns.def:789 #9 0x0000555555805ddf in rb_vm_exec (ec=0x555555b51790, mjit_enable_p=true) at vm.c:2163 #10 0x0000555555622006 in rb_ec_exec_node (ec=ec@entry=0x555555b51790, n=n@entry=0x555555b66b10) at eval.c:317 #11 0x00005555556269f9 in ruby_run_node (n=0x555555b66b10) at eval.c:375 #12 0x000055555558125f in main (argc=, argv=) at main.c:50 (gdb) ``` ---------------------------------------- Bug #17494: ruby is hanged when using activesupport + rspec + rspec-parameterized https://bugs.ruby-lang.org/issues/17494#change-90080 * 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/