[Zope-dev] some broken publishers on retry

Marius Gedminas mgedmin at b4net.lt
Thu Jan 31 14:30:34 EST 2008


On Thu, Jan 31, 2008 at 07:21:30PM +0100, Adam Groszer wrote:
> After a day of debugging I came to the finding that at some places the
> request and response gets faked after a retry occurred.
> 
> zope.app.testing.functional calls the publisher like this:
> publish(request, handle_errors=handle_errors)
> deep in publish a new instance of request is created in case of a retry
> old one dropped, works on the new one
> def publish(request, handle_errors=True):
> ...
> return request
> (returns the newly instantiated request)
> back to zope.app.testing.functional:
> publish(request, handle_errors=handle_errors)
> it just drops the return value
> 
> I found the following likely places that could be affected:
> 
> zope.app.testing.functional
>         response = ResponseWrapper(request.response, path)
>         if env.has_key('HTTP_COOKIE'):
>             self.loadCookies(env['HTTP_COOKIE'])
>         publish(request, handle_errors=handle_errors)
>         self.saveCookies(response)
> ...
>         response = ResponseWrapper(request.response, path)
>         publish(request, handle_errors=handle_errors)
>         return response
>         
> zope.server.ftp.publisher.py:
>          response = request.response
>          publish(request)
>          return response.getResult()
> 
> zope.app.twisted.ftp.utils.py:
>         response = request.response
>         publish(request)
>         return response.getResult()
>         
> zope.app.debug.debug.py:
>         request = self._request(path, stdin, *args, **kw)
>         getStatus = getattr(request.response, 'getStatus', lambda: None)
>         _publish(request
> 
> Anybody for/against fixing those?

I think I might be responsible for the one in
zope.app.testing.functional, and I seem to remember that I used the
zope.app.debug code as an example.

+1 for fixing all of them, assuming you know how to fix them :)

Marius Gedminas
-- 
Java has a huge standard library, and Python's standard library is either even
larger or much smaller, depending upon whether you are talking about
functionality, or lines of code. ;-)
        -- Simon Brunning
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://mail.zope.org/pipermail/zope-dev/attachments/20080131/236ad3d4/attachment.bin


More information about the Zope-Dev mailing list