Comments (2)
The WAMP spec lists session|id as the first positional argument, and does not mention anything about it being nullable.
yes, the session_id
must be filled (not null). and this should be filled for both these cases:
- subscriber explicitly unsubscribes while the session itself remains open
- subscriber session leaves - deliberately or otherwise - and the subscription ends implicitly because the subscribed session is gone
that means: if crossbar doesn't fill it, that's a bug.
here is the sequence of code that I think is run.
the ID is fetched from session._session_id
where session
is a crossbar.router.session.RouterSession
the 2 cases above are exactly here
oberstet@intel-nuci7:~$ find scm/crossbario/crossbar/crossbar -name "*.py" -exec grep -Hin "on_unregister" {} \;
scm/crossbario/crossbar/crossbar/router/dealer.py:257: 'wamp.registration.on_unregister',
scm/crossbario/crossbar/crossbar/router/dealer.py:660: service_session.publish('wamp.registration.on_unregister',
- crossbar.router.Dealer._unregister
crossbar/crossbar/router/dealer.py
Line 660 in 03d7057
- crossbar.router.Dealer.detach
crossbar/crossbar/router/dealer.py
Line 257 in 03d7057
not sure what might go wrong ... thing is, there are only a couple of places where _session_id
is set None
:
oberstet@intel-nuci7:~$ find scm/crossbario/crossbar/crossbar -name "*.py" -exec grep -Hin "\._session_id = None" {} \;
scm/crossbario/crossbar/crossbar/worker/proxy.py:121: self._session_id = None
scm/crossbario/crossbar/crossbar/router/session.py:436: self._session_id = None
scm/crossbario/crossbar/crossbar/router/session.py:637: self._session_id = None
scm/crossbario/crossbar/crossbar/router/session.py:685: self._session_id = None
scm/crossbario/crossbar/crossbar/router/session.py:746: self._session_id = None
scm/crossbario/crossbar/crossbar/router/session.py:791: self._session_id = None
from crossbar.
I've seen those null
s in the raw JSON message dumps while I was debugging, so I'm very confident it's not a problem on my end.
from crossbar.
Related Issues (20)
- ERROR sent after GOODBYE when caller leaves in middle of progressive call results HOT 2
- Dependency Errors When Installing Crossbar With Pip HOT 6
- Incorrect request ID in ERROR message when callee disconnects in-flight
- Harmonize "cancelled" for "canceled" in code and comments
- Internal Error Attempting Rlink Forwarding HOT 1
- AttributeError: module 'crossbar' has no attribute '__version__' HOT 1
- SECURITY: Potential supply chain compromise HOT 2
- Subscriptions And Registration Not Being Forwarded Over RLink On Reconnect Or Late Join HOT 1
- INVOCATION request ID is not session scope
- `wamp.session.kill_by_authrole` does not follow spec
- Add Automated Tests For Crossbar Routers Connected With RLink
- https://crossbar.io/ down HOT 14
- Crossbar container image is too large
- HTTP REST bridge should use Autobahn's binary enabled JSON serializer HOT 11
- Move CI fully to hosted GH runners again
- Slow memory leak in dealer.py
- Add post-quantum crypto (X25519Kyber768) to WAMP authentication (and generally) HOT 1
- Is there any duplication of code in this file ? HOT 1
- callee session killed when caller session lost in flight HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from crossbar.