🔥

[Bug #21880] pstore で ultra_safe が有効な場合に意図せずエラーになるというバグ報告

に公開

[Bug #21880] The ultra_safe mode of pstore bundled with Ruby 4.0 is broken.

  • 次のように pstoreultra_safe が有効な場合に意図せずエラーになるというバグ報告

#!/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


```shell
$ 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>'
GitHubで編集を提案

Discussion