[ruby-core:114382] [Ruby master Bug#19793] Segmentation fault when requiring files after defining Object#method_missing
From:
"nagachika (Tomoyuki Chikanaga) via ruby-core" <ruby-core@...>
Date:
2023-08-12 04:48:31 UTC
List:
ruby-core #114382
Issue #19793 has been updated by nagachika (Tomoyuki Chikanaga).
Backport changed from 3.0: DONTNEED, 3.1: DONTNEED, 3.2: REQUIRED to 3.0: DONTNEED, 3.1: DONE, 3.2: REQUIRED
ruby_3_1 3c9cb7031154b8666d600b0055ba868e18805dc8 merged revision(s) 1d096c1e53581ed9fe94694c9760babd1e12e580.
----------------------------------------
Bug #19793: Segmentation fault when requiring files after defining Object#method_missing
https://bugs.ruby-lang.org/issues/19793#change-104130
* Author: sczimmer (Scott Zimmermann)
* Status: Closed
* Priority: Normal
* ruby -v: ruby 3.2.2 (2023-03-30 revision e51014f9c0) [aarch64-linux]
* Backport: 3.0: DONTNEED, 3.1: DONE, 3.2: REQUIRED
----------------------------------------
I was doing ruby koans to learn ruby and I got a segmentation fault when it gets to the part where it uses `Symbol.all_symbols`. I realized it happens with any large Array, but I cannot reproduce in a small test script, just when it runs the whole ruby koans. So the minimal way to reproduce I have is:
download rubykoans: https://github.com/edgecase/ruby_koans/blob/master/download/rubykoans.zip?raw=true
```
unzip rubykoans.zip
cd koans
# fix deprecated method call for ruby 3.2
ruby -i -pe 'sub "File.exists", "File.exist"' neo.rb
```
Edit about_asserts.rb, adding these two statements to make a big array to the first koan:
```
def test_assert_truth
array = []
99130.times { array << "a string"}
assert false # This should be true
end
```
run `ruby path_to_enlightenment.rb` and get a backtrace like the attached backtrace.txt
I've tried this on two servers, ubuntu aarch64 and debian x86_64. On both it crashes with ruby 3.2.2 and works fine with ruby 3.1. On both I installed ruby built from source with RVM. On the server with more ram I had to increase the number more (above it's 99130) to get it to crash.
---Files--------------------------------
backtrace.txt (21.7 KB)
--
https://bugs.ruby-lang.org/
______________________________________________
ruby-core mailing list -- ruby-core@ml.ruby-lang.org
To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/