crossbario / crossbario/autobahn-python
traceback in callee on hard killing of a caller
Open
Nobody has claimed this yet.
bug
needs-investigation
PRIO HIGH
- Dominant language
- Python
- Stars
- 2.5k
- Forks
- 768
- PR merge metrics
- No merged PRs in 30d
Description
hard killing a caller results in a callee traceback (on container components over rawsocket):
2019-03-02T16:34:36+0100 [Container 25923] Traceback (most recent call last):
File "/home/oberstet/scm/crossbario/autobahn-python/autobahn/wamp/websocket.py", line 95, in onMessage
self._session.onMessage(msg)
File "/home/oberstet/scm/crossbario/autobahn-python/autobahn/wamp/protocol.py", line 1027, in onMessage
raise ProtocolError("INTERRUPT received for non-pending invocation {0}".format(msg.request))
autobahn.wamp.exception.ProtocolError: INTERRUPT received for non-pending invocation 2601
2019-03-02T16:34:36+0100 [Container 25923] dropping connection to peer tcp4:127.0.0.1:8080 with abort=True: I dropped the WebSocket TCP connection: WAMP Protocol Error (INTERRUPT received for non-pending invocation 2601)
2019-03-02T16:34:36+0100 [Container 25923] session closed with reason wamp.close.transport_lost [WAMP transport was lost without closing the session before]
2019-03-02T16:34:36+0100 [Container 25923] Lost connection to component 'component001' uncleanly
2019-03-02T16:34:36+0100 [Container 25923] Container is hosting no more components: continue running in exit mode <shutdown-manual>
2019-03-02T16:34:36+0100 [Container 25935] Traceback (most recent call last):
File "/home/oberstet/scm/crossbario/autobahn-python/autobahn/wamp/websocket.py", line 95, in onMessage
self._session.onMessage(msg)
File "/home/oberstet/scm/crossbario/autobahn-python/autobahn/wamp/protocol.py", line 1027, in onMessage
raise ProtocolError("INTERRUPT received for non-pending invocation {0}".format(msg.request))
autobahn.wamp.exception.ProtocolError: INTERRUPT received for non-pending invocation 2602
2019-03-02T16:34:36+0100 [Container 25935] dropping connection to peer tcp4:127.0.0.1:8080 with abort=True: I dropped the WebSocket TCP connection: WAMP Protocol Error (INTERRUPT received for non-pending invocation 2602)
2019-03-02T16:34:36+0100 [Container 25935] session closed with reason wamp.close.transport_lost [WAMP transport was lost without closing the session before]
2019-03-02T16:34:36+0100 [Container 25935] Lost connection to component 'component002' uncleanly
2019-03-02T16:34:36+0100 [Container 25935] Container is hosting no more components: continue running in exit mode <shutdown-manual>
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with autobahn/wamp/protocol.py at line 1027 and autobahn/wamp/websocket.py at line 95, then investigate the hard-kill sequence over rawsocket that produces a late INTERRUPT. Reproduce the traceback and establish expected handling for an INTERRUPT received after the invocation is no longer pending.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100