crossbario / crossbar

Crossbar.io - WAMP application router
https://crossbar.io/
Other
2.05k stars 275 forks source link

send on closed protocol exception #2049

Open colmaengus opened 1 year ago

colmaengus commented 1 year ago

I've upgraded from v21.3.1 to v22.6.1 and after a while crossbar stops accepting websocket connections. The logs show the following Unhandled error in Deferred:

Traceback (most recent call last):
  File "/opt/venv/lib/python3.9/site-packages/crossbar/router/router.py", line 342, in process
    self._dealer.processCall(session, msg)
  File "/opt/venv/lib/python3.9/site-packages/crossbar/router/dealer.py", line 839, in processCall
    txaio.add_callbacks(d, on_authorize_success, on_authorize_error)
  File "/opt/venv/lib/python3.9/site-packages/txaio/tx.py", line 446, in add_callbacks
    future.addCallbacks(callback, errback)
  File "/opt/venv/lib/python3.9/site-packages/twisted/internet/defer.py", line 477, in addCallbacks
    self._runCallbacks()
--- <exception caught here> ---
  File "/opt/venv/lib/python3.9/site-packages/twisted/internet/defer.py", line 857, in _runCallbacks
    current.result = callback(  # type: ignore[misc]
  File "/opt/venv/lib/python3.9/site-packages/crossbar/router/dealer.py", line 813, in on_authorize_success
    self._call(session, call, registration, authorization)
  File "/opt/venv/lib/python3.9/site-packages/crossbar/router/dealer.py", line 1051, in _call
    self._router.send(callee, invocation)
  File "/opt/venv/lib/python3.9/site-packages/crossbar/router/router.py", line 297, in send
    session._transport.send(msg)
  File "/opt/venv/lib/python3.9/site-packages/autobahn/wamp/websocket.py", line 137, in send
    self.sendMessage(payload, isBinary)
  File "/opt/venv/lib/python3.9/site-packages/autobahn/websocket/protocol.py", line 2275, in sendMessage
    raise Disconnected("Attempt to send on a closed protocol")
autobahn.exception.Disconnected: Attempt to send on a closed protocol

After that there are lot logs of the form

<crossbar.router.protocol.WampWebSocketServerProtocol.onConnect> cookie tracking disabled on WebSocket connection

I'm still trying to work out how to trigger this but in the meantime any ideas? By comparison v21.3.1 is rock solid.

Regards

Colm A