Ticket #1549 (new defect)

Opened 4 years ago

Last modified 4 years ago

Collaboration faults when resuming and then stopping a shared activity before connections are sucessfull

Reported by: garycmartin Owned by: tomeu
Priority: Unspecified by Maintainer Milestone: 0.88
Component: sugar Version: 0.86.x
Severity: Critical Keywords:
Cc: martin.langhoff, mstone Distribution/OS: Unspecified
Bug Status: Unconfirmed

Description

When joining a shared activity, if you "Stop" before sharing is successfully established, the sharing process seems to carry on in the background and connect even though the activity is no longer running. Other users will now see you as sharing the activity in their neighbourhoods; other users already in the activity will see you 'join' and appear in their frames; and if you try to re-join that same activity again, it will generate the below traceback, and the activity will appear to never connect (an activity like chat will appear to have a frozen UI, except for the toolbar). If you now "Stop", it will correctly release the activity shared state, and you can subsequently re-join successfully on the 3rd attempt.

1257994907.658065 DEBUG sugar.presence.activity: <proxy for /org/laptop/Sugar/Presence/Activities/4 at b7236504>: Join failed because: org.freedesktop.DBus.Python.RuntimeError: Traceback (most recent call last):
  File "/home/garycmartin/sugar-jhbuild/install/share/sugar-presence-service/psutils.py", line 67, in throw_into_callback
    raise exc
RuntimeError: Already joined activity 8074fcb9170a77793abd6de4f410d4427f68a46c

1257994907.659527 DEBUG root: Failed to join activity: org.freedesktop.DBus.Python.RuntimeError: Traceback (most recent call last):
  File "/home/garycmartin/sugar-jhbuild/install/share/sugar-presence-service/psutils.py", line 67, in throw_into_callback
    raise exc
RuntimeError: Already joined activity 8074fcb9170a77793abd6de4f410d4427f68a46c

For impatient kids on slow networks (even fast wired networks takes 10sec for a shared activity state to stabilise), this may be causing a number of reported collaboration difficulties. I've not done any regression testing to see if this is also in 0.82, or 0.84.

Change History

Changed 4 years ago by garycmartin

The test case is to use two Sugar clients, have client 1 share an activity (I've tested with Chat, TurtleArt, Calculate), have client 2 join. Make sure both are collaborating correctly. Stop the client 2s activity. Resume client 2s activity (from either Journal or the Neighbourhood view) and immediately "Stop". Note that client 1 will see you 'join' ~10sec later even though client 2s activity is now stopped, client 1 will display client 2s buddy icon in the activities right frame, and also show client 2s buddy as joined in the Neighbourhood view. Attempt to re-join the activity from client 2 will fail to connect. Stop client 2s activity. Re-re-join from client 2 and it'll succeed this time.

It's quite useful to have a 3rd client sitting in Neighbourhood view so you can watch the buddy icons move back and forth as you test.

Note: See TracTickets for help on using tickets.