#12210 NORM 13.1.0: maliit-server causes slow GNOME shutdown (xsmp infinite registration loop) (was: [CL4]Switch from gnome to sugar takes a long time)

Zarro Boogs per Child bugtracker at laptop.org
Mon Nov 12 12:56:28 EST 2012


#12210: maliit-server causes slow GNOME shutdown (xsmp infinite registration loop)
---------------------------------+------------------------------------------
           Reporter:  garysu     |       Owner:  dsd          
               Type:  defect     |      Status:  assigned     
           Priority:  normal     |   Milestone:  13.1.0       
          Component:  distro     |     Version:  not specified
         Resolution:             |    Keywords:               
        Next_action:  never set  |    Verified:  0            
Deployment_affected:             |   Blockedby:               
           Blocking:             |  
---------------------------------+------------------------------------------

Comment(by dsd):

 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.

-- 
Ticket URL: <http://dev.laptop.org/ticket/12210#comment:4>
One Laptop Per Child <http://laptop.org/>
OLPC bug tracking system


More information about the Bugs mailing list