[Zope] Re: packing with zeo error

Felix Ulrich-Oltean felix at chaptereight.com
Thu May 13 12:23:31 EDT 2004


Paul Winkler <pw_lists at slinkp.com> writes:

Paul Winkler <pw_lists <at> slinkp.com> writes:
> 
> On Wed, May 12, 2004 at 08:41:14AM +0000, Felix Ulrich-Oltean wrote:
> > I've just experienced the same problem.  I haven't yet identified which
> > object(s) are causing trouble, 
> > .......
> Have you guys seen this? Not sure if it helps...
> http://www.zopelabs.com/cookbook/1054240694

I've had a look at that recipe and I've tried to use fsrefs.py, as well as
checkbtrees.py (from the ZODB tools), but both scripts fail.

When trying checkbtrees.py, I get:

$ python checkbtrees.py Data.fs.bak-20040513 
<root> {'Application': <Application instance at 403ac890>, 'ZGlobals': <BTree
object at 0x403b5e20>}
['Application'] <Application instance at 403ac890>
Traceback (most recent call last):
  File "checkbtrees.py", line 121, in ?
    main(fname)
  File "checkbtrees.py", line 109, in main
    add_if_new_persistent(todo, v, newpath)
  File "checkbtrees.py", line 27, in add_if_new_persistent
    getattr(obj, '_', None) # unghostify
  File "/web/zope-2.7.0/lib/python/ZODB/Connection.py", line 564, in setstate
    self._set_ghost_state(obj, p)
  File "/web/zope-2.7.0/lib/python/ZODB/Connection.py", line 603, in
_set_ghost_state
    state = unpickler.load()
  File "/web/zope-2.7.0/lib/python/ZODB/Connection.py", line 200, in
_persistent_load
    return self[oid]
  File "/web/zope-2.7.0/lib/python/ZODB/Connection.py", line 162, in __getitem__
    klass=self._db._classFactory(self, module, name)
  File "/web/zope-2.7.0/lib/python/ZODB/DB.py", line 127, in _classFactory
    return getattr(__import__(location, _globals, _globals, _silly),
ImportError: No module named CMFPlone.Portal

I have tried to export a PYTHONPATH that includes the relevant Products
directory, but it still doesn't work.


When I try fsrefs.py, I get:

python fsrefs.py Data.fs.bak-20040513 
Traceback (most recent call last):
  File "fsrefs.py", line 107, in ?
    main(path)
  File "fsrefs.py", line 81, in main
    refs = get_refs(data)
  File "fsrefs.py", line 42, in get_refs
    u.noload()
EOFError

I can't seem to get past the first hurdle, i.e. finding the dodgy object.  Any
help greatly appreciated.  I've appended my original packing traceback at the
end of the post.

Thanks,

Felix.



$ ./packstorage.py
Traceback (most recent call last):
  File "./packstorage.py", line 9, in ?
    cs.pack(wait=1, days=2.0)
  File "/web/zope-2.7.0/lib/python/ZEO/ClientStorage.py", line 815, in pack
    return self._server.pack(t, wait)
  File "/web/zope-2.7.0/lib/python/ZEO/ServerStub.py", line 79, in pack
    self.rpc.call('pack', t, wait)
  File "/web/zope-2.7.0/lib/python/ZEO/zrpc/connection.py", line 372, in call
    raise inst # error raised by server
ValueError: Error unpickling, (( GOBBLEDEEHOOK SPAT OUT HERE ))




More information about the Zope mailing list