[Zope-dev] KeyError: 'URL' in HTTPRequest using zope2.7-py2.3.3

Dieter Maurer dieter at handshake.de
Sun Dec 4 16:13:52 EST 2005


Brian Watson wrote at 2005-12-4 14:33 -0500:
> ...
>>    raise KeyError, key
>> KeyError: 'URL'
>>>
>>>The "request" in your PageTemplate context lacks an "URL".
>>>
>>>"URL" is set in the "HTTPRequest"s constructor ("__init__").
>>>If an "HTTPRequest" instance lacks "URL" this means either:
>>>
>>>   *  the instance was created in a wrong way (contructor not called)
>>>
>>>   *  "URL" was deleted after construction.
> ...
>i can str it and get your normal zope-style table of a request only it lacks the base#/url# attributes.  its __dict__ seems normal, but .other and ._urls are both empty.

The "URL" (and its derivatives) is maintained in "other".
Thus, if "other" is cleared (it is not protected, normal application
code can do it), then "URL" will disappear.

"other" (and frieds) is cleared when the request is closed.
But that should only happen when the request is no longer used.

>  i'm not sure how 'URL' could have been deleted or how the httprequest could have been instantiated wrong.  it doesnt happen everytime, but when i open multiple browsers and click-crazy to tax it a bit it will happen in ~1-2mins, almost when it boggs down the server a little.

Can you have a lock into your logfile ("event.log"). Do
you see any strange exceptions at about this time, maybe
"ConflictError"?
Maybe the problem occurs when a request is retried in case of
a "ConflictError".

-- 
Dieter


More information about the Zope-Dev mailing list