Strange crash with custom resource code

I recently moved an existing twisted http app from Twisted 1.x to 2.1, and am having a strange traceback that I can't track down. My code renders jpeg images on-the-fly via a spawnProcess() on the reactor. It used to work fine, and it still seems to work (though very very slowly). I'm getting tons of tracebacks at the console that launched the reactor: Unhandled error in Deferred: Traceback (most recent call last): File "/usr/lib/python2.4/site-packages/twisted/internet/defer.py", line 294, in _startRunCallbacks self._runCallbacks() File "/usr/lib/python2.4/site-packages/twisted/internet/defer.py", line 307, in _runCallbacks self.result = callback(self.result, *args, **kw) File "/usr/lib/python2.4/site-packages/twisted/internet/defer.py", line 229, in callback self._startRunCallbacks(result) File "/usr/lib/python2.4/site-packages/twisted/internet/defer.py", line 294, in _startRunCallbacks self._runCallbacks() --- <exception caught here> --- File "/usr/lib/python2.4/site-packages/twisted/internet/defer.py", line 307, in _runCallbacks self.result = callback(self.result, *args, **kw) File "/usr/local/lib/python2.4/site-packages/Wrangler/render/image/__init__.py ", line 132, in postConvert_Success Inline_Generic.render_present( self, args[0] ) File "/usr/local/lib/python2.4/site-packages/Wrangler/render/generic.py", line 131, in render_present static.FileTransfer(f, size, request) File "/usr/lib/python2.4/site-packages/twisted/web/static.py", line 413, in __init__ request.registerProducer(self, 0) File "/usr/lib/python2.4/site-packages/twisted/web/http.py", line 583, in registerProducer self.transport.registerProducer(producer, streaming) File "/usr/lib/python2.4/site-packages/twisted/internet/abstract.py", line 273, in registerProducer producer.resumeProducing() File "/usr/lib/python2.4/site-packages/twisted/python/hook.py", line 153, in newfunc return getattr(klass, ORIG(klass, name))(*args, **kw) File "/usr/lib/python2.4/site-packages/twisted/web/static.py", line 426, in resumeProducing self.request.finish() File "/usr/lib/python2.4/site-packages/twisted/web/server.py", line 265, in finish http.Request.finish(self) File "/usr/lib/python2.4/site-packages/twisted/web/http.py", line 630, in finish self._cleanup() File "/usr/lib/python2.4/site-packages/twisted/web/http.py", line 437, in _cleanup self.channel.requestDone(self) File "/usr/lib/python2.4/site-packages/twisted/web/http.py", line 1058, in requestDone self.requests[0].noLongerQueued() File "/usr/lib/python2.4/site-packages/twisted/web/http.py", line 468, in noLongerQueued self.transport.registerProducer(self.producer, self.streamingProducer) File "/usr/lib/python2.4/site-packages/twisted/internet/abstract.py", line 273, in registerProducer producer.resumeProducing() File "/usr/lib/python2.4/site-packages/twisted/python/hook.py", line 153, in newfunc return getattr(klass, ORIG(klass, name))(*args, **kw) File "/usr/lib/python2.4/site-packages/twisted/web/static.py", line 426, in resumeProducing self.request.finish() File "/usr/lib/python2.4/site-packages/twisted/web/server.py", line 265, in finish http.Request.finish(self) File "/usr/lib/python2.4/site-packages/twisted/web/http.py", line 630, in finish self._cleanup() File "/usr/lib/python2.4/site-packages/twisted/web/http.py", line 437, in _cleanup self.channel.requestDone(self) File "/usr/lib/python2.4/site-packages/twisted/web/http.py", line 1058, in requestDone self.requests[0].noLongerQueued() File "/usr/lib/python2.4/site-packages/twisted/web/http.py", line 468, in noLongerQueued self.transport.registerProducer(self.producer, self.streamingProducer) File "/usr/lib/python2.4/site-packages/twisted/internet/abstract.py", line 273, in registerProducer producer.resumeProducing() File "/usr/lib/python2.4/site-packages/twisted/python/hook.py", line 153, in newfunc return getattr(klass, ORIG(klass, name))(*args, **kw) File "/usr/lib/python2.4/site-packages/twisted/web/static.py", line 426, in resumeProducing self.request.finish() File "/usr/lib/python2.4/site-packages/twisted/web/server.py", line 265, in finish http.Request.finish(self) File "/usr/lib/python2.4/site-packages/twisted/web/http.py", line 630, in finish self._cleanup() File "/usr/lib/python2.4/site-packages/twisted/web/http.py", line 437, in _cleanup self.channel.requestDone(self) File "/usr/lib/python2.4/site-packages/twisted/web/http.py", line 1058, in requestDone self.requests[0].noLongerQueued() File "/usr/lib/python2.4/site-packages/twisted/web/http.py", line 472, in noLongerQueued self._cleanup() File "/usr/lib/python2.4/site-packages/twisted/web/http.py", line 437, in _cleanup self.channel.requestDone(self) exceptions.AttributeError: Request instance has no attribute 'channel' Very little of that traceback refers to any of my own code, so I don't know how to begin digging in for what I've done wrong. My suspicion is that it's a matter of minor api changes in the Resource class, but I can't find any migration documentation on twistedmatrix.com. If anyone could give me a track to start my digging, I'd appreciate it. Thanks!
participants (1)
-
Matt Feifarek