[ZODB-Dev] RFC: Attempts at Python2-compatible pickles cause unpicklable objects

Tres Seaver tseaver at palladion.com
Sat Jun 8 06:03:44 UTC 2013


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 06/07/2013 09:56 AM, Jim Fulton wrote:
> On Fri, Jun 7, 2013 at 3:02 AM, Marius Gedminas <marius at gedmin.as>
> wrote:
>> On Thu, Jun 06, 2013 at 09:43:16PM -0400, Stephan Richter wrote:
>>> On Thursday, June 06, 2013 09:28:38 PM Tres Seaver wrote:
>>>> If I am correct about this consensus, then in addition to
>>>> merging PR #11 for ZODB, we should also drop the
>>>> 'bytes_as_strings' changes to 'zodbpickle'.
> 
> Yes
> 
>>> 
>>> Yes, this is a left-over from our experimentation. It did not
>>> work, since it also pickled attribute names as bytes and when you
>>> loaded them, the attributes would be gone.
>> 
>> The specific combination last used in ZODB4 on Python 3 (pickle 
>> bytes_as_strings=True, load with encoding='ascii', errors='bytes') 
>> handled attributes fine.
>> 
>> Apparently it broke datetime objects -- and I never noticed.
>> 
>>> Also, requiring protocol 3 for Python 3 sounds correct as well.
>> 
>> How about also bumping the magic number of Data.fs files so ZODB on 
>> Python 2 would reject it early?

I have made that change on the 'issue_10' branch.

One point to consider is that anybody who has been using ZODB on Py3k
since the beta will have to do surgeery on their filestorages to get them
to load after that change (the code doesn't make any attempt to determine
if the magic number is later;  it just checks for an exact match).  I
don't want to make the "wait, we have five users, we can't take out the
tab requirement" mistake here:  anybody for whom this would be a hardship
needs to speak up pretty quickly.



Tres.
- -- 
===================================================================
Tres Seaver          +1 540-429-0999          tseaver at palladion.com
Palladion Software   "Excellence by Design"    http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with undefined - http://www.enigmail.net/

iEYEARECAAYFAlGyyT8ACgkQ+gerLs4ltQ4SxACgrskSD/t/9R0yFtlsSUQRGIuX
0REAoMWBctMgYYqgu0WiV2E5WCi790o4
=mazo
-----END PGP SIGNATURE-----



More information about the ZODB-Dev mailing list