Recap: last week I examined problems I had packing our 4GB users storage. With
Martijn's help I was able to fix zeo's exception output and write out the first
broken pickle that throws an exception. During my checks I realized that
running the pack in a Python 2.7 environment (using the same ZODB version -
3.10.3) works fine, the pack reduces our 4GB storage to 1GB. But our production
server uses Python 2.6 (same ZODB3.10.3) which yields the problem (though the
test had been done on OS X 10.7.3 - 64bit, and the production server is Debian
Currently I see only three ways to resolve that problem:
- Upgrade production server from Python 2.6 to Python 2.7 which would
probably solve the current problem (if it's really a Python 2.6/2.7 problem).
- Pack the storage with Python 2.7/ZODB3.10.3 on the working system and
deploy it back to the Python 2.6 production environment - very time consuming
(because I have to download/pack/upload a big storage and during that time the
production server wouldn't be available to avoid changes during that time)/
- Find out what is broken regarding that pickle and possibly the Python
2.6/ZODB3.10.3 combination and deploy a fix.
You can download the broken pickle from here:
If someone has more experience in parsing and understanding pickles in regards
to ZODB3, any help would be appreciated.
For more information about ZODB, see http://zodb.org/
ZODB-Dev mailing list - ZODB-Dev@zope.org