-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 08/14/2013 07:48 AM, [mabe] wrote: > Hi everyone, > > I noticed today that database packing doesn't seem to work (at least > on Python 3.3) > > Minimal example: > > from ZODB import FileStorage, DB > > storage = FileStorage.FileStorage('/tmp/mystorage.fs') db = > DB(storage) db.pack() db.close() > > Expected: No output / db.pack() should succeed, although there is > likely nothing to pack. > > Actual output: % python zodb_pack.py packing Traceback (most recent > call last): File "/usr/lib/python3.3/site-packages/ZODB/DB.py", line > 810, in pack self.storage.pack(t, self.references) File > "/usr/lib/python3.3/site-packages/ZODB/FileStorage/FileStorage.py", > line 1121, in pack pack_result = self.packer(self, referencesf, stop, > gc) File > "/usr/lib/python3.3/site-packages/ZODB/FileStorage/FileStorage.py", > line 1074, in packer opos = p.pack() File > "/usr/lib/python3.3/site-packages/ZODB/FileStorage/fspack.py", line > 408, in pack self.gc.findReachable() File > "/usr/lib/python3.3/site-packages/ZODB/FileStorage/fspack.py", line > 191, in findReachable self.findReachableAtPacktime([z64]) File > "/usr/lib/python3.3/site-packages/ZODB/FileStorage/fspack.py", line > 276, in findReachableAtPacktime for oid in self.findrefs(pos): File > "/usr/lib/python3.3/site-packages/ZODB/FileStorage/fspack.py", line > 329, in findrefs return self.referencesf(self._file.read(dh.plen)) > File "/usr/lib/python3.3/site-packages/ZODB/serialize.py", line 646, > in referencesf u.noload() AttributeError: 'Unpickler' object has no > attribute 'noload' Traceback (most recent call last): File > "zodb_pack.py", line 5, in <module> db.pack() File > "/usr/lib/python3.3/site-packages/ZODB/DB.py", line 810, in pack > self.storage.pack(t, self.references) File > "/usr/lib/python3.3/site-packages/ZODB/FileStorage/FileStorage.py", > line 1121, in pack pack_result = self.packer(self, referencesf, stop, > gc) File > "/usr/lib/python3.3/site-packages/ZODB/FileStorage/FileStorage.py", > line 1074, in packer opos = p.pack() File > "/usr/lib/python3.3/site-packages/ZODB/FileStorage/fspack.py", line > 408, in pack self.gc.findReachable() File > "/usr/lib/python3.3/site-packages/ZODB/FileStorage/fspack.py", line > 191, in findReachable self.findReachableAtPacktime([z64]) File > "/usr/lib/python3.3/site-packages/ZODB/FileStorage/fspack.py", line > 276, in findReachableAtPacktime for oid in self.findrefs(pos): File > "/usr/lib/python3.3/site-packages/ZODB/FileStorage/fspack.py", line > 329, in findrefs return self.referencesf(self._file.read(dh.plen)) > File "/usr/lib/python3.3/site-packages/ZODB/serialize.py", line 646, > in referencesf u.noload() AttributeError: 'Unpickler' object has no > attribute 'noload'
Thanks very much for the report. I can reproduce with your example: downgrading 'zodbpickle' to version 0.5.0 gets your example to run cleanly, e.g.:: $ /path/to/virtualenv/bin/easy_install -U "zodbpickle == 0.5.0" Could I get you to post it to the zodbpickle tracker: https://github.com/zopefoundation/zodbpickle/issues Tres. - -- =================================================================== Tres Seaver +1 540-429-0999 tsea...@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/ iEYEARECAAYFAlILxvoACgkQ+gerLs4ltQ5bXQCg2c7lb9Lu/179TuNpIQRFvhjN 1ecAoKhh+QaRiVnQXnO4MWu1Nyv4A+CE =boEi -----END PGP SIGNATURE----- _______________________________________________ For more information about ZODB, see http://zodb.org/ ZODB-Dev mailing list - ZODB-Dev@zope.org https://mail.zope.org/mailman/listinfo/zodb-dev