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

Paul Wiseman poalman at gmail.com
Fri Dec 21 11:12:38 EST 2012


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 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



More information about the Twisted-Python mailing list