Skip to content
  • Cosimo Cecchi's avatar
    manager: fix deadlock when registering XSMP clients at login · 6c24fcc9
    Cosimo Cecchi authored
    gnome-session will switch to the next phase whenever the list of
    applications pending registration is emptied.
    Previously, for XSMP clients, the code in GsmXSMPClient would signal
    that an application was registered before sending the reply through
    SmsRegisterClientReply().
    As GnomeIdleMonitor will now call into Mutter through DBus, and the
    RUNNING phase of the session will initialize its presence component that
    uses the monitor, we will end up in a situation where Mutter is waiting
    for the XSMP reply from gnome-session, and gnome-session is waiting for
    a synchronous DBus reply from Mutter, effectively locking up the login
    process until the DBus timeout occurs.
    
    This commit fixes the bug by signalling XSMP app registration only after
    the reply has been sent over the wire.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=707274
    6c24fcc9