I'm not sure I can recreate the traceback anymore, the general problem is/was that due to another bug the client attempted to send another request to the Thrift service while it was shutting down (connectionLost). Thus I would end up with "big" exception of the dictionary being modified inside the iteration. Struck me as easier to extract the dictionary either prior to the for loop or any potential fix that would iterate until the dictionary was empty avoiding the problem of misbehaving clients which attempt to send a request while shutting down.

Hopefully this makes sense,
--koblas

Esteve Fernandez wrote:
To whomever might maintain the twisted/python interface.

I guess that's me :-)

Looks like if you make a Thrift call from an errback you end up with the
following exception:

I'm not sure what you mean, do you have a code snippet?

  File ".../thrift/transport/TTwisted.py", line 82, in connectionLost
    for k,v in self.client._reqs.iteritems():

Seems the traceback got truncated, could you send it again?

Thanks for reporting the bug!

Reply via email to