[Grok-dev] Re: Problem starting up a grok project for a second time

Martijn Faassen faassen at startifact.com
Fri May 2 17:19:12 EDT 2008


Hi there,

Low Kian Seong wrote:
> I am running grok zope on a 64 bit dual core machine and on the opensuse 
> 10.3 platform. The problem I am encountering is that, when I start up my 
> instance for the first time everything is okay. However, after shutting 
> down and trying to start up for the second time, I get the error that I 
> have included below. Could some please give me a clue as what is happening ?

[snip]
> "/root/buildout-eggs/tmp-WG7jI/zope.app.generations-3.4.0a1-py2.5.egg/zope/app/generations/generations.py", 
> line 441, in evolveMinimumSubscriber
>   File 
> "/root/buildout-eggs/tmp-WG7jI/zope.app.generations-3.4.0a1-py2.5.egg/zope/app/generations/generations.py", 
> line 373, in evolve
>   File "/usr/lib64/python2.5/UserDict.py", line 58, in get
>     if not self.has_key(key):
>   File "/usr/lib64/python2.5/UserDict.py", line 44, in has_key
>     def has_key(self, key): return self.data.has_key(key)
> AttributeError: 'PersistentDict' object has no attribute 'data'

It appears to be going wrong somewhere in the inside of the 
zope.app.generations package, a package that helps you upgrade the state 
of the ZODB to new versions. The 'generations' object that fails here 
*should* be a PersistentDict.

Why this happens exactly I'm not sure about. Are you using generations 
at all in your code? (or possibly using some extension that tries to do 
generations?).

One thing I do see is that you're using Python 2.5; usually we install 
Grok on Python 2.4, though Python 2.5 has had quite a few reports of 
actually working. It *might* be that something changed in 
IterableUserDict (from which PersistentDict is constructed) in Python 
2.5 that breaks some assumptions. Looking at the implementation I can't 
find any obvious indications of how, though.

A mystery. Anyone any clues?

Regadrs,

Martijn



More information about the Grok-dev mailing list