Actions
Bug #21880
openThe ultra_safe mode of pstore bundled with Ruby 4.0 is broken.
Bug #21880:
The ultra_safe mode of pstore bundled with Ruby 4.0 is broken.
Description
here is the reproduction code.
$ ruby -v
ruby 4.0.1 (2026-01-13 revision e04267a14b) +PRISM [x86_64-linux]
$ cat pstore.rb
#!/usr/bin/env ruby
require "bundler/inline"
gemfile do
source "https://rubygems.org"
if ENV['DEBUG']
gem "pstore", "0.1.4"
else
gem "pstore"
end
end
db = PStore.new("pstore.db")
db.ultra_safe = true
db.transaction do
puts db["now"] = Time.now
end
$ ruby pstore.rb
2026-02-15 04:49:31 +0000
/home/s3fxn/.rubies/ruby-4.0.1/lib/ruby/gems/4.0.0/gems/pstore-0.2.0/lib/pstore.rb:676:in 'Ractor.make_shareable': Proc's self is not shareable: #<Proc:0x0000749f688df078 /home/s3fxn/.rubies/ruby-4.0.1/lib/ruby/gems/4.0.0/gems/pstore-0.2.0/lib/pstore.rb:673> (Ractor::IsolationError)
from /home/s3fxn/.rubies/ruby-4.0.1/lib/ruby/gems/4.0.0/gems/pstore-0.2.0/lib/pstore.rb:676:in 'PStore#on_windows?'
from /home/s3fxn/.rubies/ruby-4.0.1/lib/ruby/gems/4.0.0/gems/pstore-0.2.0/lib/pstore.rb:685:in 'PStore#save_data'
from /home/s3fxn/.rubies/ruby-4.0.1/lib/ruby/gems/4.0.0/gems/pstore-0.2.0/lib/pstore.rb:575:in 'PStore#transaction'
from pstore.rb:14:in '<main>'
$ DEBUG=1 ruby pstore.rb
2026-02-15 04:49:53 +0000
Actions