crossbario / crossbario/autobahn-python

traceback in callee on hard killing of a caller

Open
#1,127 1 comment 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.