Ticket #5028 regression closed wontfix
Twisted r31537 and Foolscap incompatibility
| Reported by: | billnoon | Owned by: | |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | core | Keywords: | |
| Cc: | davidsarah | Branch: | |
| Author: | Launchpad Bug: |
Description (last modified by exarkun) (diff)
The new ssl implementation added in [31537] #4854 is incompatible with Foolscap (v0.6.1).
The ConnectionMixin is treating the self.protocol object as a transport and calls write() and loseConnection() on it.
Here is a traceback:
Traceback (most recent call last): File "/usr/lib64/python2.6/site-packages/foolscap-0.6.1_-py2.6.egg/foolscap/slicers/root.py", line 107, in send d.callback(None) File "/usr/lib64/python2.6/site-packages/Twisted-11.0.0_r31548-py2.6-linux-x86_64.egg/twisted/internet/defer.py", line 361, in callback self._startRunCallbacks(result) File "/usr/lib64/python2.6/site-packages/Twisted-11.0.0_r31548-py2.6-linux-x86_64.egg/twisted/internet/defer.py", line 455, in _startRunCallbacks self._runCallbacks() File "/usr/lib64/python2.6/site-packages/Twisted-11.0.0_r31548-py2.6-linux-x86_64.egg/twisted/internet/defer.py", line 542, in _runCallbacks current.result = callback(current.result, *args, **kw) --- <exception caught here> --- File "/usr/lib64/python2.6/site-packages/foolscap-0.6.1_-py2.6.egg/foolscap/banana.py", line 216, in produce self.pushSlicer(slicer, obj) File "/usr/lib64/python2.6/site-packages/foolscap-0.6.1_-py2.6.egg/foolscap/banana.py", line 352, in pushSlicer openID = self.sendOpen() File "/usr/lib64/python2.6/site-packages/foolscap-0.6.1_-py2.6.egg/foolscap/banana.py", line 481, in sendOpen int2b128(openID, self.transport.write) File "/usr/lib64/python2.6/site-packages/foolscap-0.6.1_-py2.6.egg/foolscap/banana.py", line 24, in int2b128 stream(chr(0)) File "/usr/lib64/python2.6/site-packages/Twisted-11.0.0_r31548-py2.6-linux-x86_64.egg/twisted/internet/_newtls.py", line 176, in write self.protocol.write(bytes) exceptions.AttributeError: 'Broker' object has no attribute 'write'
This could be caused by foolscap setting the protocol attribute on the transport in negotiate.py https://github.com/warner/foolscap/blob/master/foolscap/negotiate.py#L1162
Change History
Note: See
TracTickets for help on using
tickets.
