From: Cameron Pope Date: 2011-09-13T12:28:32+09:00 Subject: [ruby-core:39503] [Ruby 1.9 - Bug #5311][Open] PStore fails to save data when default encodings are set Issue #5311 has been reported by Cameron Pope. ---------------------------------------- Bug #5311: PStore fails to save data when default encodings are set http://redmine.ruby-lang.org/issues/5311 Author: Cameron Pope Status: Open Priority: Normal Assignee: Category: Target version: 1.9.x ruby -v: ruby 1.9.4dev (2011-09-13 trunk 33261) [x86_64-darwin10.8.0] When PStore opens its data files, it does so using the File::BINARY flag, which ensures that Windows will not do cr-lf conversions, but it does not ensure that file#external_encoding is ASCII_8BIT (Binary). That means that under certain circumstances (when Encoding.internal_encoding is defined) that PStore will sometimes raise errors when writing to disk because Marshal.dump will emit a byte sequence that is not valid with the file's external encoding. To illustrate, I've submitted a patch that contains a test that fails in Ruby 1.9.x, but passes with the minor change to PStore: to specify external_encoding when opening its data files. -- http://redmine.ruby-lang.org