Project

General

Profile

Bug #16177

Some `*.rb` files on builddir cause Segmentation fault

Added by znz (Kazuhiro NISHIYAMA) about 2 months ago. Updated 5 days ago.

Status:
Open
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
ruby 2.7.0dev (2019-09-24T02:50:38Z master 2366c68116) [x86_64-darwin18]
[ruby-core:95055]

Description

How to reproduce:

  1. Create dummy files by ./miniruby -e '%w[a b foo bar test zzz].each{|basename|File.write("#{basename}.rb", "raise %(do not load #{basename}.rb)")}'
  2. Run ruby/test_autoload.rb like make test-all TESTS='ruby/test_autoload.rb'

Error log from raw logs:

2019-09-24T09:48:24.3773590Z   2) Failure:
2019-09-24T09:48:24.3773760Z TestAutoload#test_autoload_same_file [/Users/runner/runners/2.158.0/work/ruby/ruby/test/ruby/test_autoload.rb:332]:
2019-09-24T09:48:24.3773930Z pid 39572 killed by SIGABRT (signal 6)
2019-09-24T09:48:24.3774450Z | #<Thread:0x00007f8851176ac0@-:9 run> terminated with exception (report_on_exception is true):
2019-09-24T09:48:24.3775010Z | /Users/runner/runners/2.158.0/work/ruby/ruby/b.rb:1:in `<top (required)>': do not load b.rb (RuntimeError)
2019-09-24T09:48:24.3775480Z |  from -:9:in `require'
2019-09-24T09:48:24.3775910Z |  from -:9:in `block in <main>'
2019-09-24T09:48:24.3776390Z | -:10: [BUG] Segmentation fault at 0x0000000000000019

attached full raw logs of https://github.com/ruby/ruby/pull/2482/checks?check_run_id=233890903#step:11:1


Files

36.txt (195 KB) 36.txt znz (Kazuhiro NISHIYAMA), 09/24/2019 09:58 AM
bug-in-docker.txt (14 KB) bug-in-docker.txt znz (Kazuhiro NISHIYAMA), 11/12/2019 10:16 AM

History

Updated by znz (Kazuhiro NISHIYAMA) 5 days ago

How to reproduce:

echo 'raise %(do not load b.rb)' > b.rb
cat >x.rb <<EOF
autoload :Foo, 'b'
autoload :Bar, 'b'
t1 = Thread.new do Foo end
t2 = Thread.new do Bar end
t1.join
t2.join
EOF
ruby -w --disable=gems -I. x.rb

ruby -w --disable=gems -I. x.rb sometimes causes x.rb:4: [BUG] Segmentation fault at 0x0000000000000019.

I confirmed on macos and ubuntu.

It can reproduce in Docker.
Dockerfile example is https://github.com/znz/ruby-16177/blob/master/Dockerfile.

Also available in: Atom PDF