From: Anthony Liguori <aliguori@us.ibm.com>
To: xen-devel@lists.xensource.com
Cc: Andrew Warfield <andrew.warfield@cl.cam.ac.uk>,
Julian Chesterfield <jac90@cam.ac.uk>,
Steven Rostedt <rostedt@goodmis.org>
Subject: Re: blktap race against xenstore startup
Date: Thu, 28 Sep 2006 17:45:33 -0500 [thread overview]
Message-ID: <451C508D.1070103@us.ibm.com> (raw)
In-Reply-To: <1159481874.8884.30.camel@sisko.scot.redhat.com>
Stephen C. Tweedie wrote:
> Hi all,
>
> With the various blktap fixes I've recently posted, blktap runs
> reliably... the *second* time we start xend. First time, blktapctrl
> just dies on init.
>
> It turns out that get_dom_domid() is SEGVing. It calls
>
> e = xs_directory(h, xth, "/local/domain", &num);
>
> and then iterates over the results to find the domain with the right
> name (in this case, "Domain-0", which should be easy to find!) Trouble
> is, it's racing with xenstore startup, and when it calls this the first
> time, it gets back an ENOENT (easily seen on an strace.) That returns
> e=NULL, and everything falls apart.
>
> I have "fixed" it locally with the following terrible hack:
>
> + for (i = 0; i < 10; i++) {
> + e = xs_directory(h, xth, "/local/domain", &num);
> + if (e)
> + break;
> + sleep(1);
> + }
>
> - e = xs_directory(h, xth, "/local/domain", &num);
> -
> - for (i = 0; (i < num) && (domid == NULL); i++) {
> + for (i = 0; e && (i < num) && (domid == NULL); i++) {
>
> which just loops calling xs_directory() with a 1-second pause in between
> until it returns something sensible.
>
> Ugh. There has got to be a better way to synchronise with the initial
> population of the dom0 information into xenstore, surely? Has no other
> component of the Xen stack ever seen this before?
I don't know how blktap is launched right now, but the same problem has
occurred in the past for other daemons (like xenconsoled).
xenstored won't close standard output until it's ready to receive
connections. xend start will wait to start the other daemons until
xenstored is ready. How does blktap get spawned?
Regards,
Anthony Liguori
> --Stephen
next prev parent reply other threads:[~2006-09-28 22:45 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-09-28 22:17 blktap race against xenstore startup Stephen C. Tweedie
2006-09-28 22:45 ` Anthony Liguori [this message]
2006-09-28 23:23 ` Stephen C. Tweedie
2006-09-29 1:15 ` Anthony Liguori
2006-09-29 6:54 ` Keir Fraser
2006-10-02 9:36 ` Stephen C. Tweedie
2006-10-02 10:14 ` Keir Fraser
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=451C508D.1070103@us.ibm.com \
--to=aliguori@us.ibm.com \
--cc=andrew.warfield@cl.cam.ac.uk \
--cc=jac90@cam.ac.uk \
--cc=rostedt@goodmis.org \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.