From: shyouhei@ruby-lang.org
To: ruby-dev@ruby-lang.org
Subject: [ruby-dev:50996] [Ruby master Bug#17494] ruby is hanged when using activesupport + rspec + rspec-parameterized
Date: Mon, 25 Jan 2021 00:42:09 +0000 (UTC) [thread overview]
Message-ID: <redmine.journal-90080.20210125004208.17960@ruby-lang.org> (raw)
In-Reply-To: <redmine.issue-17494.20201231114745.17960@ruby-lang.org>
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 <http://gnu.org/licenses/gpl.html>
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:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
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=<optimized out>, 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 <method_entry_i>, 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=<optimized out>, argv=<optimized out>, mod=93824999286960, obj=<optimized out>, func=0x5555555ad2e0 <ins_methods_i>) at class.c:1422
#6 0x00005555558025c0 in vm_call_cfunc_with_frame (ec=0x555555b51790, reg_cfp=0x7ffff7fcafa0, calling=<optimized out>) at vm_insnhelper.c:2898
#7 0x0000555555810806 in vm_sendish (method_explorer=<optimized out>, block_handler=<optimized out>, cd=<optimized out>, reg_cfp=<optimized out>, ec=<optimized out>) 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=<optimized out>, argv=<optimized out>) 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/
next prev parent reply other threads:[~2021-01-25 0:42 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-31 11:47 [ruby-dev:50988] [Ruby master Bug#17494] ruby is hunged " sue445fukuoka
2021-01-01 7:34 ` [ruby-dev:50989] [Ruby master Bug#17494] ruby is hanged " yasuo.honda
2021-01-22 5:41 ` [ruby-dev:50991] " sue445fukuoka
2021-01-22 16:32 ` [ruby-dev:50992] " alpaca-tc
2021-01-25 0:42 ` shyouhei [this message]
2021-01-25 8:51 ` [ruby-dev:50997] " nobu
2021-01-26 0:45 ` [ruby-dev:50998] " nobu
2021-01-26 5:32 ` [ruby-dev:50999] " yasuo.honda
2021-03-11 0:01 ` [ruby-dev:51032] " merch-redmine
2021-07-01 21:44 ` [ruby-dev:51074] " merch-redmine
2021-07-03 3:15 ` [ruby-dev:51075] " nagachika00
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=redmine.journal-90080.20210125004208.17960@ruby-lang.org \
--to=shyouhei@ruby-lang.org \
--cc=ruby-dev@ruby-lang.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).