[Twisted-Python] TaskStopped error, unsure of the cause and solution
Paul Wiseman
poalman at gmail.com
Fri Dec 21 09:12:38 MST 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