[Zope] assertion error

Dieter Maurer dieter at handshake.de
Sat May 14 15:05:25 EDT 2005


[Dieter]
> Looks as if your catalog were very old and still has entries
> with request relative resolution.
> ...
> With this information, you can try to analyse the problem
> in an interactive Python interpreter.

> ...

[Denis]
To have either object or brain's path in output ("tagencies" list).
The most interesting is that accessing via name I've got objects and
paths

[Dieter] this means that some paths could not be resolved (you
get them as paths and cannot get objects).

They probably form the "old" content still using
request relative access.

[Denis]
 but accessing via IP I've got ONLY object - no paths...

[Dieter]
In this case, all paths can be resolved into objects.

You should select one or two failing paths and
analyse them (this is done best in an interactive
interpreter; under *nix, such an interpreter can be
started with "bin/zopectl debug").

[Denis]
Then I checked the paths I got for presence of objects on them.
Objects are there, so I decided to use

tagencies.append(portal.restrictedTraverse(path))

[Dieter] Try "unrestrictedTraverse" (will not work in untrusted code
-- use the interactive interpreter).

If "unrestrictedTraverse" can resolve the path,
this means that the problem is a permission problem:
the user is not allowed to access some object of "path".

The catalog tries two ways to resolve a path:

  the modern one uses "physical path" related traversal,
  the old one uses request relative Url traversal.

  Due to a bug introduced in a recent Zope version
  (and I think fixed again in Zope 2.7.6), the modern
  approach performs too strict access controls.
  This may mean that the request relative Url traversal
  is used as a fallback.

  The request relative Url traversal is known to
  have severe problems with virtual hosting
  (also it is not yet known why host specification
  via name or IP should make a difference).

I (at your place) would debug "brain.getObject()"
for one of the failing brains.

Please search the mailing list archives for some notes
about debugging Plone/Zope.
                                          http://plonetarium.objectis.net

-- 
Dieter


More information about the Zope mailing list