Ticket #12210 (closed defect: fixed)

Opened 7 months ago

Last modified 6 months ago

maliit-server causes slow GNOME shutdown (xsmp infinite registration loop)

Reported by: garysu Owned by: dsd
Priority: normal Milestone: 13.1.0
Component: distro Version: not specified
Keywords: Cc: tonyforster
Action Needed: no action Verified: no
Deployments affected: Blocked By:
Blocking:

Description

OS:31007o4
OFW:Q7B03
1.Login to sugar and switch to gnome.
2.To click the switch to suagr.
3.System cannot change to sugar.
4.After reboot, system changed to sugar

Change History

Changed 7 months ago by dsd

  • owner set to dsd
  • status changed from new to assigned
  • summary changed from [CL4]Switch from gnome to sugar will fail. to [CL4]Switch from gnome to sugar takes a long time
  • component changed from not assigned to distro
  • milestone changed from Not Triaged to 13.1.0

It does change if you leave it enough time.

Changed 7 months ago by tonyforster

After sudo yum downgrade gnome-menus-3.6.0-1.fc18 --nogpg the problem went away

Changed 7 months ago by tonyforster

  • cc tonyforster added

Changed 6 months ago by dsd

  • summary changed from [CL4]Switch from gnome to sugar takes a long time to maliit-server causes slow GNOME shutdown (xsmp infinite registration loop)

Here's whats happening:

  1. gnome-session shuts down all of its clients, one by one, including maliit-server
  2. Something triggers maliit-server to launch again - probably dbus-activation of a message fired by the maliit GTK+ IM plugin due to a change of widget focus
  3. The new maliit-server attempts to register with gnome-session over XSMP
  4. gnome-session rejects the maliit-server connection attempt due to this code:
static gboolean
on_xsmp_client_register_request (GsmXSMPClient *client,
                                 char         **id,
                                 GsmManager    *manager)
{
        if (manager->priv->phase >= GSM_MANAGER_PHASE_QUERY_END_SESSION) {
                goto out;
        }

The last 2 steps repeat infinitely, until gnome-session hits a timeout and stops trying to handle maliit-server. While this is happening, gnome-session produces these debug messages:

gnome-session[1919]: DEBUG(+): GsmXSMPClient: Client '0x795e0 []' received RegisterClient(NULL)
gnome-session[1919]: DEBUG(+): GsmXSMPClient:   rejected: invalid previous_id

This means that the above diagnosis has probably given us a good explanation of http://bugs.sugarlabs.org/ticket/1624 as well.

The next question is why this loops infinitely instead of just failing once. The answer seems to be in libSM.

Changed 6 months ago by dsd

libSM fix: http://lists.x.org/archives/xorg-devel/2012-November/034436.html

However, gnome-session is still being confused by a client connecting at a late stage.

Changed 6 months ago by dsd

Changed 6 months ago by dsd

  • next_action changed from never set to add to build

Fixed in gnome-session-3.6.2-2.fc18. In the end the libSM issue is not relevant.

Changed 6 months ago by dsd

  • next_action changed from add to build to test in build

Test in 13.1.0 build 12. Bert, can you provide a test case showing how etoys was affected by this breakage?

Changed 6 months ago by greenfeld

Switching from GNOME now goes at a reasonable speed in 13.1.0 os12 for XO-1.75 and XO-4. But I do not understand how this ticket is related to etoys.

Changed 6 months ago by greenfeld

  • status changed from assigned to closed
  • next_action changed from test in build to no action
  • resolution set to fixed

Presuming this has nothing to do with etoys; closing.

Note: See TracTickets for help on using tickets.