saros
saros copied to clipboard
Adding reference points as a non-host during a session causes initial awareness activities to be dropped on receiving side
When accepting a resource negotiation to share additional reference points during a session as the host, Saros runs into issues not being able to process the initial awareness information activities send by sender of the resource negotiation as the reference point has not been registered locally. See stacktrace and log files below.
This does not seem to impede the sharing as the session still works as expected with the new reference point from what I can tell. As this only cause the awareness information to be missing, awareness feature could behave strangely in this initial state.
This issue does not seem to be related to the recent changes to the resource logic as it can still be reproduced before the replacement of SPath (#934).
This issue might also not strictly be Saros/E specific but could rather reside in the core. But I am currently only able to test this with Saros/E as Saros/I does not support sharing multiple reference points yet.
Stacktrace
ERROR 18:15:16,438 [saros-DispatchContext] (ResourceTransportWrapperConverter.java:107) Could not create resource because there is no shared reference point for id '1450253051'
[...]
ERROR 18:15:16,448 [saros-DispatchContext] (ResourceTransportWrapperConverter.java:107) Could not create resource because there is no shared reference point for id '1450253051'
ERROR 18:15:16,449 [saros-DispatchContext] (ResourceTransportWrapperConverter.java:107) Could not create resource because there is no shared reference point for id '1450253051'
[...]
ERROR 18:15:16,450 [saros-DispatchContext] (SarosSession.java:649) could not handle incoming activity: TextSelectionActivity(start line: 0, in-line offset: 0, end line: 0, in-line offset: 0, is backwards: false, src: [email protected]/Saros, file: null)
ERROR 18:15:16,450 [saros-DispatchContext] (SarosSession.java:649) could not handle incoming activity: ViewportActivity(file: null, range: (0,1))
[...]
ERROR 18:15:16,451 [saros-DispatchContext] (ResourceTransportWrapperConverter.java:107) Could not create resource because there is no shared reference point for id '1450253051'
[...]
ERROR 18:15:16,452 [saros-DispatchContext] (ResourceTransportWrapperConverter.java:107) Could not create resource because there is no shared reference point for id '1450253051'
[...]
ERROR 18:15:16,452 [saros-DispatchContext] (SarosSession.java:649) could not handle incoming activity: TextSelectionActivity(start line: 5, in-line offset: 0, end line: 5, in-line offset: 0, is backwards: false, src: [email protected]/Saros, file: null)
[...]
ERROR 18:15:16,453 [saros-DispatchContext] (ResourceTransportWrapperConverter.java:107) Could not create resource because there is no shared reference point for id '1450253051'
[...]
ERROR 18:15:16,454 [saros-DispatchContext] (SarosSession.java:649) could not handle incoming activity: ViewportActivity(file: null, range: (0,6))
[...]
ERROR 18:15:16,456 [saros-DispatchContext] (ResourceTransportWrapperConverter.java:107) Could not create resource because there is no shared reference point for id '1450253051'
[...]
ERROR 18:15:16,464 [saros-DispatchContext] (ResourceTransportWrapperConverter.java:107) Could not create resource because there is no shared reference point for id '1450253051'
[...]
ERROR 18:15:16,465 [saros-DispatchContext] (SarosSession.java:649) could not handle incoming activity: TextSelectionActivity(start line: 0, in-line offset: 0, end line: 0, in-line offset: 0, is backwards: false, src: [email protected]/Saros, file: null)
[...]
ERROR 18:15:16,465 [saros-DispatchContext] (ResourceTransportWrapperConverter.java:107) Could not create resource because there is no shared reference point for id '1450253051'
[...]
ERROR 18:15:16,466 [saros-DispatchContext] (SarosSession.java:649) could not handle incoming activity: ViewportActivity(file: null, range: (0,1))
log alice: [email protected]_2020-06-22_18-14-47.log log bob: [email protected]_2020-06-22_18-14-48.log
Steps to Reproduce
- Alice and Bob both have a local workspace with two projects
AandBthat are in sync. (In sync probably optional.) - Alice (host) start a session with Bob on the project
A. - Bob accept the session and resource invitation. (Representation option does not really matter. Obviously not
B.) - Bob opens at least one editor for a resource in
B. - Bob adds the project
Bto the session. - Alice accepts the incoming resource negotiation. Representation option does not matter.
Expected Result
Alice can process the initial awareness activities send by Bob.
Actual Result
Alice drops the initial awareness activities send by Bob.
I guess the non host sharing was not tested that good. Either the messages are not correctly fired or there is logic implemented that assumes the some code is always executed as host.