On Thu, Nov 13, 2014 at 07:26:10PM +0100, Marc-André Lureau wrote: > On Thu, Nov 13, 2014 at 6:38 PM, Christophe Fergeau <cfergeau@xxxxxxxxxx> > wrote: > > > Hey, > > > > On Thu, Nov 13, 2014 at 05:41:20PM +0100, Marc-André Lureau wrote: > > > On Thu, Nov 13, 2014 at 10:07 AM, Christophe Fergeau < > > cfergeau@xxxxxxxxxx> > > > wrote: > > > > > > > Ah, this is the bit I was missing thanks! The commit log needs to be > > > > much more detailed and accurate, and mention explicitly the various > > code > > > > paths involved to trigger the error, where the looping occurs, ... > > > > > > > > > > What about? > > > > > > migration: set connecting state before fd request > > > > > > During migration, the main channel initiating the process is waiting on > > > connection completion of all channels in migrate_channel_event_cb() > > > > before yielding back to the main context. > > > > Not sure what you mean, the main channel context is "waiting", meaning it > waits until it is yields back from migrate_channel_event_cb() when all > channels are connected. Hmm I only partially understood what your log meant, and tried to improve it, but it's very partial. I think it's better to be explicit about main context/coroutine context here, maybe something like "During migration, the main channel initiating the process is waiting in the main context for connection completion. It's migrate_channel_event_cb() which is expected to yield back to the main context once all channels have completed connection" > > > or > > > it will abort migration for unexpected channel events, such as > > > SPICE_CHANNEL_CLOSED. > > > > s/or it will/It will// > > > > "is waiting on connection completion of all channels... or it will", I > think this is correct as it's an alternative path if the completion isn't > met. Yup, not saying it's incorrect, it's just that the sentence was a bit long, and the 'or' is not very important, so it was easy to split it there. I'm fine either way. > > > > > > > > If the migration is cancelled before connection completes, but the > > > channels state are still SPICE_CHANNEL_STATE_UNCONNECTED, > > > > but the channells are still in the SPICE_CHANNEL_STATE_UNCONNECTED state > > > > ok > > > > > no events will > > > be emitted in channel_disconnect(), and the source session main channel > > > will remain frozen waiting for migration completion or failure. > > > > > > Currently, for client-fd channels, the channel state remains UNCONNECTED > > > until the fd is provided. But if cancellation occurs, no channel events > > are > > > emitted and the source session is stuck. > > > > > > Before requesting the fd, set the channel state to connecting, so > > > it > > > > > > will emit an error if disconnect happens, and it will finish cancelling > > > the migration in source session main channel. > > > > Extra line breaks in the middle of the paragraph it seems. > > > > I use emacs default fill-paragraph, it may not match the mailer but it > looks correct ~70 character per line. I was not sure if this was a local issue or a wrongly formatted commit log, this is all good if this looks correct in git log. Christophe
Attachment:
pgpgJ7kG786pA.pgp
Description: PGP signature
_______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel