[Twisted-Python] TaskStopped error, unsure of the cause and solution

Paul Wiseman poalman at gmail.com
Thu Dec 27 09:49:26 EST 2012


On 21 December 2012 18:08,  <exarkun at twistedmatrix.com> wrote:
> On 04:12 pm, poalman at gmail.com wrote:
>>Hey,
>>
>>I'm getting the following error in my logs (lots and lots), but only
>>after the server has been running for some time, I'm not sure what the
>>cause is or what I can do to remedy it.
>
> This seems like a bug in `Agent`, perhaps related to `stopProducing`
> being called more than once.  It would be great if you could produce a
> minimal example to include with a bug report in the issue tracker.  An
> example that reproduces the problem will also make it easier to see
> where the bug is in your code, if it happens to be there rather than in
> Twisted.

I'll try my best! The problem is I don't seem to see this at all for
10k+ requests ish then I guess something must trigger it as it will
start happening a lot, so it may be difficult to reproduce.

>
> Jean-Paul
>>This is what I see in the logs:
>>
>>2012-12-20 17:07:17+0000 [HTTP11ClientProtocol,client] Unhandled Error
>>        Traceback (most recent call last):
>>        Failure: twisted.web._newclient.RequestTransmissionFailed:
>>[<twisted.python.failure.Failure <class
>>'twisted.internet.error.ConnectionDone'>>]
>>
>>2012-12-20 17:07:17+0000 [HTTP11ClientProtocol,client] Unexpected
>>exception from twisted.web.client.FileBodyProducer.stopProducing
>>        Traceback (most recent call last):
>>          File "/usr/local/lib/python2.7/site-
>>packages/Twisted-12.2.0-py2.7-linux-
>>x86_64.egg/twisted/internet/endpoints.py",
>>line 99, in connectionLost
>>            return self._wrappedProtocol.connectionLost(reason)
>>          File "/usr/local/lib/python2.7/site-
>>packages/Twisted-12.2.0-py2.7-linux-
>>x86_64.egg/twisted/web/_newclient.py",
>>line 859, in dispatcher
>>            return func(*args, **kwargs)
>>          File "/usr/local/lib/python2.7/site-
>>packages/Twisted-12.2.0-py2.7-linux-
>>x86_64.egg/twisted/web/_newclient.py",
>>line 1458, in _connectionLost_TRANSMITTING
>>            self._currentRequest.stopWriting()
>>          File "/usr/local/lib/python2.7/site-
>>packages/Twisted-12.2.0-py2.7-linux-
>>x86_64.egg/twisted/web/_newclient.py",
>>line 760, in stopWriting
>>            _callAppFunction(self.bodyProducer.stopProducing)
>>        --- <exception caught here> ---
>>          File "/usr/local/lib/python2.7/site-
>>packages/Twisted-12.2.0-py2.7-linux-
>>x86_64.egg/twisted/web/_newclient.py",
>>line 191, in _callAppFunction
>>            function()
>>          File "/usr/local/lib/python2.7/site-
>>packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/web/client.py",
>>line 760, in stopProducing
>>            self._task.stop()
>>          File "/usr/local/lib/python2.7/site-
>>packages/Twisted-12.2.0-py2.7-linux-
>>x86_64.egg/twisted/internet/task.py",
>>line 459, in stop
>>            self._checkFinish()
>>          File "/usr/local/lib/python2.7/site-
>>packages/Twisted-12.2.0-py2.7-linux-
>>x86_64.egg/twisted/internet/task.py",
>>line 469, in _checkFinish
>>            raise self._completionState
>>        twisted.internet.task.TaskStopped:
>>
>>Just loads of those, they always seem to come through in pairs (the
>>first twisted.internet.error.ConnectionDone, and then the
>>twisted.internet.task.TaskStopped as above)
>>
>>I'm just doing PUT requests with twisted.web.client.Agent and using a
>>twisted.web.client.FileBodyProducer to provide the content.
>>
>>I'm doing the PUT while I still have the request from a render_GET, so
>>I thought maybe it's caused if the user disconnects while I'm doing
>>the PUT? The idea is I redirect them to the file I PUT with
>>request.redirect, which seems to work fine (until I get this error and
>>it doesn't)
>>
>>The reason I do a PUT and redirect, instead of just writing back to
>>the request is that I check if the file is in a cache first, I then
>>only PUT if it's not there- then redirect afterwards.
>>
>>Any clues or ideas of what is happening would be hugely helpful
>>
>>thanks!!
>>
>>Paul
>>
>>_______________________________________________
>>Twisted-Python mailing list
>>Twisted-Python at twistedmatrix.com
>>http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
>
> _______________________________________________
> Twisted-Python mailing list
> Twisted-Python at twistedmatrix.com
> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python



More information about the Twisted-Python mailing list