-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Description
method = getattr(client, method, None)
if method is not None:
d = method(*args, **kwargs)
if method us @defer.inlineCallbacks, then we might have a maximum recursion depth exceeded issue. when self._commands is greater than zero, then we would chain a very long list of callbacks.
if len(self._commands) > 0:
d, method, args, kwargs = self._commands.pop(0)
_ign_d = self.performRequest(method, *args, **kwargs)
_ign_d.chainDeferred(d)
I suggest do it in a reactor.callLater when self._commands > 0.
the stack information is quite large, and I only paste a part.
File "/usr/local/apps/Opus/server/xxd/env/lib/python2.7/site-packages/txconnpool/pool.py", line 202, in _freeClientAfterRequest
C: self.clientFree(client)
C: File "/usr/local/apps/Opus/server/xxd/env/lib/python2.7/site-packages/txconnpool/pool.py", line 292, in clientFree
C: _ign_d = self.performRequest(method, *args, **kwargs)
C: File "/usr/local/apps/Opus/server/xxd/env/lib/python2.7/site-packages/txconnpool/pool.py", line 236, in performRequest
C: client, method, *args, **kwargs)
C: File "/usr/local/apps/Opus/server/xxd/env/lib/python2.7/site-packages/txconnpool/pool.py", line 213, in _performRequestOnClient
C: d.addCallback(_freeClientAfterRequest)
C: File "/usr/local/apps/Opus/server/xxd/env/lib/python2.7/site-packages/twisted/internet/defer.py", line 317, in addCallback
C: callbackKeywords=kw)
C: File "/usr/local/apps/Opus/server/xxd/env/lib/python2.7/site-packages/twisted/internet/defer.py", line 306, in addCallbacks
C: self._runCallbacks()
C: File "/usr/local/apps/Opus/server/xxd/env/lib/python2.7/site-packages/twisted/internet/defer.py", line 588, in _runCallbacks
C: current.result = callback(current.result, *args, **kw)
C: File "/usr/local/apps/Opus/server/xxd/env/lib/python2.7/site-packages/txconnpool/pool.py", line 202, in _freeClientAfterRequest
C: self.clientFree(client)
C: File "/usr/local/apps/Opus/server/xxd/env/lib/python2.7/site-packages/txconnpool/pool.py", line 292, in clientFree
C: _ign_d = self.performRequest(method, *args, **kwargs)
C: File "/usr/local/apps/Opus/server/xxd/env/lib/python2.7/site-packages/txconnpool/pool.py", line 236, in performRequest
C: client, method, *args, **kwargs)
C: File "/usr/local/apps/Opus/server/xxd/env/lib/python2.7/site-packages/txconnpool/pool.py", line 213, in _performRequestOnClient
C: d.addCallback(_freeClientAfterRequest)
C: File "/usr/local/apps/Opus/server/xxd/env/lib/python2.7/site-packages/twisted/internet/defer.py", line 317, in addCallback
C: callbackKeywords=kw)
C: File "/usr/local/apps/Opus/server/xxd/env/lib/python2.7/site-packages/twisted/internet/defer.py", line 306, in addCallbacks
C: self._runCallbacks()
C: File "/usr/local/apps/Opus/server/xxd/env/lib/python2.7/site-packages/twisted/internet/defer.py", line 588, in _runCallbacks
C: current.result = callback(current.result, *args, **kw)
C: File "/usr/local/apps/Opus/server/xxd/env/lib/python2.7/site-packages/txconnpool/pool.py", line 202, in _freeClientAfterRequest
C: self.clientFree(client)
C: File "/usr/local/apps/Opus/server/xxd/env/lib/python2.7/site-packages/txconnpool/pool.py", line 292, in clientFree
C: _ign_d = self.performRequest(method, *args, **kwargs)
C: File "/usr/local/apps/Opus/server/xxd/env/lib/python2.7/site-packages/txconnpool/pool.py", line 236, in performRequest
C: client, method, *args, **kwargs)
C: File "/usr/local/apps/Opus/server/xxd/env/lib/python2.7/site-packages/txconnpool/pool.py", line 213, in _performRequestOnClient
C: d.addCallback(_freeClientAfterRequest)
C: File "/usr/local/apps/Opus/server/xxd/env/lib/python2.7/site-packages/twisted/internet/defer.py", line 317, in addCallback
C: callbackKeywords=kw)
C: File "/usr/local/apps/Opus/server/xxd/env/lib/python2.7/site-packages/twisted/internet/defer.py", line 306, in addCallbacks
C: self._runCallbacks()
C: File "/usr/local/apps/Opus/server/xxd/env/lib/python2.7/site-packages/twisted/internet/defer.py", line 588, in _runCallbacks
C: current.result = callback(current.result, *args, **kw)
C: File "/usr/local/apps/Opus/server/xxd/env/lib/python2.7/site-packages/txconnpool/pool.py", line 202, in _freeClientAfterRequest
C: self.clientFree(client)
Metadata
Metadata
Assignees
Labels
No labels