Opened 14 years ago
Last modified 9 years ago
#1624 new defect
gsm-client goes to infinite loop
Reported by: | alsroot | Owned by: | tomeu |
---|---|---|---|
Priority: | Low | Milestone: | Unspecified |
Component: | Sugar | Version: | 0.86.x |
Severity: | Unspecified | Keywords: | |
Cc: | Distribution/OS: | Ubuntu | |
Bug Status: | Unconfirmed |
Description
was reported by antoni on #sugar
in unreproducible case, sugar falls to infinite loop which means infinite growing of shell.log
Change History (6)
comment:1 Changed 14 years ago by alsroot
comment:2 Changed 13 years ago by dsd
I can reproduce this on a large number of laptops here in Nicaragua, on Sugar 0.82.
To reproduce:
- Hand out laptops in a school
- Wait a few months
- Go to the school
- Attempt to shut down the XO in the normal way, using the home menu)
- Nothing happens on-screen (machine does not shut down), sugar log fills up with the errors shown above
comment:3 Changed 12 years ago by dsd
Reproduced at Sugarcamp France on Sugar-0.92.3 (XO-1.5)
comment:4 Changed 11 years ago by dsd
After working on http://dev.laptop.org/ticket/12210 I revisited this with some new knowledge.
The xsmp session manager code currently in sugar does not seem to have the issue that was seen in 12210 (and this code hasn't changed over the last few years). Clients that connect at a late stage do not cause the SM to get confused and delay shutdown, even if they do spam a fair amount in the process. So these looping messages are not the cause of this hang:
* (sugar-session:8104): DEBUG: Client '0x9305550' received RegisterClient(NULL) * (sugar-session:8104): DEBUG: rejected: invalid previous_id
Instead, something else must be causing this. Perhaps an already-registered activity that is not responding as expected to the conversation generated during session shutdown.
However, there is something odd going on with those messages. The messages come from this code:
g_debug ("Client '%s' received RegisterClient(%s)", xsmp->description, previous_id ? previous_id : "NULL"); id = gsm_session_register_client (global_session, client, previous_id); if (id == NULL) { g_debug (" rejected: invalid previous_id"); free (previous_id); return FALSE; }
However, I cannot see a single codepath through gsm_session_register_client() that does not produce a log message (warning or debug). So its odd that we aren't seeing more in the log.
Please attach full logs here (from Sugar start until the point where it goes into the infinite rejected: loop) next time this happens, also stating the sugar version and what was happening (had the user tried to shutdown? were there activities open?).
comment:5 Changed 9 years ago by tch
I will put this on low priority until we are able to gather more information.
comment:6 Changed 9 years ago by tch
- Priority changed from Unspecified by Maintainer to Low