Fix ProxySession
message routing bug with Jupyter widget
#2989
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes an issue which caused
Client
instances bound to aProxySession
to mis-route some messages due to re-used Message IDs.ProxySession
is used by thePerspectiveWidget
Jupyter widget to share a connection for both the Widget and localClient
, and it relies onmsg_id
field to discriminate transport messages to each. These are now seeded randomly instead of starting at 0. The fix applied may still rarely have conflicts - but they would require a few unlikely conditions to occur in sequence, and eliminating conflicts completely would be quite a bit more difficult to implement.A test is included based on the issue reported in https://github.com/tomjakubowski/perspective/tree/bug/session