crossbario / crossbar

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

rlinks: in-router component cannot call procedures #1891

Closed om26er closed 3 years ago

om26er commented 3 years ago

When using a in-router component (https://crossbar.io/docs/Router-Components/), it is not possible to call WAMP procedures on a Router-to-Router link. This is because the authid of an "in-router" component is always None.

This code path gets hit https://github.com/crossbario/crossbar/blob/712d9da9173829be7df3ecba5dbb7981dd648fcd/crossbar/worker/rlink.py#L257

om26er commented 3 years ago

Here is the log

2021-09-12T07:15:23+0500 [Router     1545671] RLinkLocalSession.onUserError(): "RuntimeError: Internal error attempting rlink forwarding"
Traceback (most recent call last):
  File "/home/om26er/scm/crossbario/crossbar/venv/lib/python3.8/site-packages/txaio/tx.py", line 366, in as_future
    return maybeDeferred(fun, *args, **kwargs)
  File "/home/om26er/scm/crossbario/crossbar/venv/lib/python3.8/site-packages/twisted/internet/defer.py", line 191, in maybeDeferred
    result = f(*args, **kwargs)
  File "/home/om26er/scm/crossbario/crossbar/venv/lib/python3.8/site-packages/twisted/internet/defer.py", line 1909, in unwindGenerator
    return _cancellableInlineCallbacks(gen)  # type: ignore[unreachable]
  File "/home/om26er/scm/crossbario/crossbar/venv/lib/python3.8/site-packages/twisted/internet/defer.py", line 1816, in _cancellableInlineCallbacks
    _inlineCallbacks(None, gen, status)
--- <exception caught here> ---
  File "/home/om26er/scm/crossbario/crossbar/venv/lib/python3.8/site-packages/twisted/internet/defer.py", line 1661, in _inlineCallbacks
    result = current_context.run(gen.send, result)
  File "/home/om26er/scm/crossbario/crossbar/crossbar/worker/rlink.py", line 259, in on_call
    raise RuntimeError("Internal error attempting rlink forwarding")
builtins.RuntimeError: Internal error attempting rlink forwarding
om26er commented 3 years ago

It gets more interesting. Looking a few lines down, it seems authid is not being used at all (that's a different bug ?) on that code and we could potentially remove it's check without introducing a regression, https://github.com/crossbario/crossbar/blob/712d9da9173829be7df3ecba5dbb7981dd648fcd/crossbar/worker/rlink.py#L269-L273

om26er commented 3 years ago

@oberstet What are your thoughts on this ^

om26er commented 3 years ago

Proposed a fix for this https://github.com/crossbario/crossbar/pull/1893