[Zope-dev] Traversal Barf

Casey Duncan cduncan@kaivo.com
Wed, 11 Jul 2001 09:13:39 -0600


seb bacon wrote:
> 
> * Steve Alexander <steve@cat-box.net> [010711 07:59]:
> > >>KeyError: SERVER_URL
> 
> > > I have seen a similar traceback which was due to a bug in CopyPaste.py,
> > > to which I have submitted a patch. It had to do with a lack of an
> > > acquisition wrapper at an inopportune time. It looks as though
> > > absolute_url() is being called without a proper wrapper around the
> > > object it is begin called for.
> 
> > Looks to me like absolute_url() is being called when absolute_url(1)
> > should be used.
> 
> I didn't know about the absolute_url(relative=1) switch.  Do virtually
> hosted envirnoments not have a SERVER_URL variable?
> 

This actually points to a lack of an acquireable REQUEST object. If you
look at the code in absolute_url, it tries to acquire REQUEST and if it
can't, it sets it to {}. Then when it does a REQUEST['SERVER_URL'] later
on it gets a KeyError. I personally think this code is very brittle, but
it does work 99.99% of the time.

> However, I don't think this is the problem.
> 
> (1) I'm not in a virtual hosting scenario
> (2) it happens at fairly random intervals *on the same page*.

This is very weird. I would expect it to act consistently. I hate that!

> 
> I can be working on a page, then reload it, and I get the KeyError.
> Then I can reload it again and the error goes.  Then I go back to it,
> reload it again, and the error appears.  Reload it again and the error
> remains.  Reload it again and it disappears again...  You get the
> idea.

Is it truely random or an every-other reload sort of regularity? I have
a feeling you'll pick the former.

> 
> This makes it very difficult to debug.  I left my computer on
> overnight, without changing any app settings, and haven't seen the
> error yet today.
> 
> My feeling is that Casey's right.  It's happening on a CMF object
> to which I've added BeforeTraverse hooks, which could possibly have
> something to do with it.  

Can you experiment with removing/changing these hooks?
Can you post the code for your object?

> However, I've actually seen this problem
> before, about a year ago, with a completely unrelated ZClass-based
> objects.  I remember then noticing that the error occured more often
> with Netscape and Opera than IE.  Of course, that theory is utter
> nonsense seeing as HTTP is a connectionless protocol and the headers
> each browser sends are effectively the same.  However, in the absence
> of a reproduceable error, I have to clutch at straws ;-)
> 
> seb

The browser differences may point to caching differences that make it
seem as though it is working.

Any DCians have any insights?

-- 
| Casey Duncan
| Kaivo, Inc.
| cduncan@kaivo.com
`------------------>