This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


Re: [Xen-devel] [PATCH] Add timeout to xenconsole to fix race condition

To: Christian.Limpach@xxxxxxxxxxxx
Subject: Re: [Xen-devel] [PATCH] Add timeout to xenconsole to fix race condition in xm create -c
From: Anthony Liguori <aliguori@xxxxxxxxxx>
Date: Wed, 31 Aug 2005 15:42:52 -0500
Cc: Rusty Russell <rusty@xxxxxxxxxxxxxxx>, xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Wed, 31 Aug 2005 20:42:09 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <3d8eece20508310331244b808@xxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <4314D5CC.3020107@xxxxxxxxxx> <3d8eece20508310331244b808@xxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mozilla Thunderbird 1.0.2 (X11/20050317)
Christian Limpach wrote:

On 8/30/05, Anthony Liguori <aliguori@xxxxxxxxxx> wrote:
This should address the problems people are having now.

Wait a little bit for tty to appear.  There is a race condition that
occurs after xend creates a domain.  Since no event triggers consoled to
re-examine existing domains, we'll often not see the new pty by the time
we're here.  Since consoled sleeps for 2 second periods, a 5 second
timeout should keep us covered.

I've applied this with slighly changed comments since xenconsoled now
uses watches and should setup the tty almost immediately.  The race
still exists though.
Yes, what we really want is a event-dispatch mechanism. It's something we've talked about a bit here but without flushing out any sort of actual design.

A xenstore watch isn't much better since we don't want to block forever
if given an invalid domain or worse yes, a domain that someone else has
connected to.

It would improve the responsiveness but a timeout is still needed for
the reasons you pointed out.

Finally, there's still an issue with storing the console tty
information in /console/<domid> -- there might be stale data from a
previous domain having the same domid and the client might run before
the console daemon has rewritten the tty entry.  I think this is best
fixed by moving the console tty information into the domain's /domain
Rusty had some objections to this originally--this is why its not there now. Rusty?


Anthony Liguori


Xen-devel mailing list

<Prev in Thread] Current Thread [Next in Thread>