Thanks Uri;) I couldn't explain it better.

Uri Lublin wrote:
On 12/26/2011 12:58 PM, Arnon Gilboa wrote:
In case of agent launch failure: if connection state is not active(*), wait for
agent launch on the next session connection. Otherwise, the service is stopped.
(*) The failure was due to system startup timings and logon settings, causing
the first agent instance lifetime (before session connect) to be too short to
connect the service.

Ack.

Although Arnon explained it above, I'd like to clarify (please correct
me if I'm wrong).
This case only happens on system startup.
On system startup, there is a default "startup" session, that is later
replaced with another session. Sometimes the switch between those
sessions are "too fast" such that the first session is terminated before
connecting to the service.
In such a case the service had exited.
When the next session starts we get an event and can retry.

This fix makes vdservice wait for the next session to start, instead of
exiting.
Service exits only if a user is already logged-in (active state).



@@ -952,7 +975,9 @@ bool VDService::restart_agent(bool normal_restart)
         }
         _last_agent_restart_time = time;
         ret = true;
-        read_pipe();
+        if (_vdi_port) {
+            read_pipe();
+        }
     }
     MUTEX_UNLOCK(_agent_mutex);
     return ret;


For cleanliness, I'd add setting _vdi_port to NULL in init_vdi_port()
upon failure.



_______________________________________________
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/spice-devel

_______________________________________________
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/spice-devel

Reply via email to