[ruby-core:101919] [Ruby master Bug#17489] Ractor segfaults
From:
ko1@...
Date:
2021-01-05 01:34:12 UTC
List:
ruby-core #101919
Issue #17489 has been updated by ko1 (Koichi Sasada).
Assignee set to ko1 (Koichi Sasada)
Status changed from Open to Assigned
Thank you. I can confirm the reproducing. This issue is maybe from the lack of synchronization for the constant table.
----------------------------------------
Bug #17489: Ractor segfaults
https://bugs.ruby-lang.org/issues/17489#change-89765
* Author: kirs (Kir Shatrov)
* Status: Assigned
* Priority: Normal
* Assignee: ko1 (Koichi Sasada)
* ruby -v: 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-darwin19]
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
I was able to boil it down to this script:
```ruby
require 'bundler/inline'
gemfile do
source 'https://rubygems.org'
gem "sinatra", "~> 2.1"
end
require 'sinatra'
class App < Sinatra::Base
get '/' do
200
end
end
module Sinatra
class Base
class << self
# patch it to avoid hitting other unsafe things
def setup_default_middleware(builder)
builder.use Rack::NullLogger
end
end
end
end
workers = 2.times.map do
Ractor.new { App.new }
end
Ractor.select(*workers)
```
Even though the code doesn't make a lot of sense and Sinatra has other stuff that's not compatible with Ractor, I would not expect user-level Ruby code to segfault.
I have attached the crash report and stderr output.
---Files--------------------------------
segfault.dump (44.8 KB)
ruby_2020-12-29-002108_Kirs-MacBook-Pro-2.crash (27.9 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>