🔥
[Bug #21880] pstore で ultra_safe が有効な場合に意図せずエラーになるというバグ報告
[Bug #21880] The ultra_safe mode of pstore bundled with Ruby 4.0 is broken.
-
次のように
pstoreでultra_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>'
- 意図しない状態で
Ractor.make_shareableを呼んでいてエラーになってるみたいですね - この不具合は Fix
ultra_safemode by nobu · Pull Request #36 · ruby/pstore で修正されました
Discussion