[ruby-core:93490] [Ruby master Bug#15971] Segfault with --jit-wait when using simple *= operator

From: takashikkbn@...
Date: 2019-07-02 14:42:49 UTC
List: ruby-core #93490
Issue #15971 has been updated by k0kubun (Takashi Kokubun).


This is a perfect bug report having a minimum code which reproduces the bug in Ruby 2.7 JIT's method inlining.
I wish we could catch this automatically by one of our CIs, but this time it didn't go well.

Thank you for testing Ruby 2.7 and reporting this, Noah. I believe commit:ea30dd702512ff9df34fe8c71c825f8f901bf5b1 fixed the problem.

----------------------------------------
Bug #15971: Segfault with --jit-wait when using simple *= operator
https://bugs.ruby-lang.org/issues/15971#change-79039

* Author: noahgibbs (Noah Gibbs)
* Status: Closed
* Priority: Normal
* Assignee: k0kubun (Takashi Kokubun)
* Target version: 
* ruby -v: ruby 2.7.0dev (2019-07-02T06:22:22Z trunk 4d6c35d33a) [x86_64-darwin18]
* Backport: 2.4: DONTNEED, 2.5: DONTNEED, 2.6: DONTNEED
----------------------------------------
I get a segfault with the very simple Ruby code below with JIT debug options. Runs fine with only "--jit" (no --jit-wait or --jit-save-temps).

Ruby with "ruby --jit --jit-save-temps --jit-wait ./multiply.rb"
Ruby version: ruby 2.7.0dev (2019-07-02T06:22:22Z trunk 4d6c35d33a) [x86_64-darwin18]

# multiply.rb
def multiply(a, b)
  a *= b
end

1_000_000.times do
  multiply(7.0, 10.0)
end



---Files--------------------------------
crash_report_text.txt (6.25 KB)
ruby_2019-07-02-120741_C02RP0G1G8WM.crash (38.8 KB)


-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next