Jean Jordaan wrote at 2005-3-15 11:39 +0200:
... Unauthorized: The container has no security assertions. Access to 'id' of (Query instance at 40596140) denied. ... When I see the above in the browser, I see the following in the log:
2005-03-15T09:56:19 ERROR(200) ZODB Couldn't load state for 0x03ad7e Traceback (most recent call last): File "/home/upfront/Zope-2.7.3-0/lib/python/ZODB/Connection.py", line 600, in setstate self._set_ghost_state(obj, p) File "/home/upfront/Zope-2.7.3-0/lib/python/ZODB/Connection.py", line 639, in _set_ghost_state state = unpickler.load() AttributeError: 'bool' object has no attribute '__dict__'
Nevertheless, the "Unauthorized" and the traceback do not go together but describe different problems -- unless you use "try ... except" and hide primary exceptions... It is very strange that the unpickling is looking for a "__dict__". It almost looks like a too older Python version (though this is not very likely). Python 2.3 comes with pickletools. You can use them to "disassemble" pickles for easier inspection. This may provide some hints for the problem.
... The following test script finds 3 paths, but there's something wrong with the returned objects. For example, they don't have ids! obj.getId() acquires the container's id.
for p in context.Catalog(meta_type='Query'): try: obj = p.getObject() x = obj.id except: r.append( p.getObject() )
Analyse such an object in detail (in an interactive interpreter). -- Dieter