Sorry, one add-on: I have the feeling that /etc/init.d/xendomains stop
will not wait for the domains to
shut down. It is finished very quickly and I can see the domains
shutting down with xl list afterwards.
I guess this is not the default behavior, as the xm version waits for
every domain to have disappeared.
BR,
Carsten.
-----Ursprüngliche Nachricht-----
Von: Carsten Schiers
Gesendet: Mittwoch, 25. Mai 2011 21:07
An: fantonifabio; Ian.Campbell
Cc: xen-devel; Stefano.Stabellini
Betreff: AW: Re: AW: [Xen-devel] Possible Compatibility Bug in xl create
Crosscheck: renamed
domain_create_info -> create_info_domain
domain_build_info -> build_info_domain
domid (in three device blocks) -> devdomid
in tools/libxl/xl_cmdimpl.c and everything works as expected with
my /etc/default/xendomains, which ist shutting down and restarting
from /etc/xen/auto only.
BR,
Carsten.
-----Ursprüngliche Nachricht-----
Von: Carsten Schiers
Gesendet: Mittwoch, 25. Mai 2011 20:47
An: fantonifabio; Ian.Campbell
Cc: xen-devel; Stefano.Stabellini
Betreff: AW: Re: AW: [Xen-devel] Possible Compatibility Bug in xl create
I found the problem. The (domain_create_info) and (domain_build_info)
statements
from the "xl list -l" and eventually also the repeating (domid)
statements in the
listing of devices per domain are confusing the parseln logic, which is
trying to
guess a domid/domname combo from the output:
root@data:~# xm list -l | grep '(\(domain\|domid\|name\)'
(domain
(domid 0)
(name Domain-0)
(domain
(domid 10)
(name blip)
(domain
(domid 9)
(name blub)
root@data:~# xl list -l | grep '(\(domain\|domid\|name\)'
(domain
(domid 9)
(domain_create_info)
(name blub)
(domain_build_info)
(domid 0)
(domid 0)
(domid 0)
(domain
(domid 10)
(domain_create_info)
(name blip)
(domain_build_info)
(domid 0)
(domid 0)
(domid 0)
parseln()
{
if [[ "$1" =~ '(domain' ]]; then
name=;id=
else if [[ "$1" =~ '(name' ]]; then
name=$(echo $1 | sed -e 's/^.*(name \(.*\))$/\1/')
else if [[ "$1" =~ '(domid' ]]; then
id=$(echo $1 | sed -e 's/^.*(domid \(.*\))$/\1/')
fi; fi; fi
[ -n "$name" -a -n "$id" ] && return 0 || return 1
}
is resetting on each (domain_create_info) and (domain_build_info) as
well
the name/id pair and will set domid to 0 each time it comes across the
device listing (domid 0).
This will result in ignoring the entry also, as stop is containing:
name=;id=
while read LN; do
parseln "$LN" || continue
if test $id = 0; then continue; fi
echo -n " $name"
and I think it assumes in the "if test" part that it came across
Domain-0.
I leave it to you guys "in charge" to either modify the "xl list -l"
command
or rewrite /etc/init.d/xendomains.
The patch is still needed. By the way: I had to patch it partly
manually, the
last few lines didn't work for me when patching original xen-4.1.0.
BR,
Carsten.
-----Ursprüngliche Nachricht-----
Von: Carsten Schiers
Gesendet: Dienstag, 24. Mai 2011 22:19
An: Ian.Campbell
Cc: xen-devel; Stefano.Stabellini
Betreff: AW: Re: AW: [Xen-devel] Possible Compatibility Bug in xl create
Hi,
the patch is doing what you would expect, but still not solving my
issue. /etc/init.d/xendomains will start
all domains, but is not stopping it. It's somewhere in the parseln
function, which is not recognizing the
(name xyz) part. Unfortunately, I have not enough time today to test
further.
I currently have no clue where the input from the parseln function will
come from in stop function. I would
Need to find out and check the differences between the xm and xl
version.
In order to make it workable, I had by the way to modify the xendomains
script and remove the dependency
of xend. As said, I plan to start all DomUs per /etc/xen/auto and
shutdown with shutdown of Dom0 without
having xend running.
If you don't see it by my description, I'll check more tomorrow evening.
BR,
Carsten.
-----Ursprüngliche Nachricht-----
Von: Ian Campbell [mailto:Ian.Campbell@xxxxxxxxxxxxx]
Gesendet: Dienstag, 24. Mai 2011 11:43
An: Carsten Schiers
Cc: xen-devel; Stefano Stabellini
Betreff: Re: AW: [Xen-devel] Possible Compatibility Bug in xl create
On Tue, 2011-05-24 at 10:40 +0100, Carsten Schiers wrote:
> I'll check that tonight.
Thanks.
> Yep, I think modifying xendomains would be the
> better way. Sorry that I overlooked your other day's question.
No worries, it was just a vague aside in some other conversation I
think...
Ian.
>
> BR,
> Carsten.
>
> ----- Originalnachricht -----
> Von: Ian Campbell <Ian.Campbell@xxxxxxxxxx>
> Gesendet: Die, 24.5.2011 11:27
> An: Carsten Schiers <carsten@xxxxxxxxxx>
> Cc: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx> ; Stefano Stabellini
<Stefano.Stabellini@xxxxxxxxxxxxx>
> Betreff: Re: [Xen-devel] Possible Compatibility Bug in xl create
>
> On Mon, 2011-05-23 at 21:01 +0100, Carsten Schiers wrote:
> > Dear all,
> >
> > there is a problem with xl that will still prevent it tob e a
> > replacement for xm in /etc/init.d/xendomains.
> >
> > I tracked it down to the rdname function in the a.m. file, which is
> > expecting the command
> >
> > xm create --dryrun --quiet <config-file>
> >
> > to create a Lisp-like structure, where the xendomain script will
extract
> > the DomU name from.
> >
> > xl create --dryrun --quiet <config-file>
> >
> > will not output such a structure.
> >
> > xl -d -f <config-file>
> >
> > will do, but as soon as combined with -n, it will not.
> >
> > My setting is starting/shutting down only DomUs mentioned in
> > /etc/xen/auto.
>
> Thanks, I was just asking the other day who/what used that sxp
output...
>
> Personally think this behaviour of grepping the name out of the sxp is
> pretty mad (I think an xl command to parse the configuration and
output
> a specific request field value would be far better) but in the
interests
> of xm compatibility does the following work for you?
>
> 8<--------------------------------------
>
> # HG changeset patch
> # User Ian Campbell <ian.campbell@xxxxxxxxxx>
> # Date 1306229164 -3600
> # Node ID 29bd959c779a629def4de2cda7c1cc2eae291df5
> # Parent 32d62506e3be95124097775dc79c42304a18084c
> xl: print sxp on dry-run of create.
>
> The help text for xm create's --dry-run says "Dry run - prints the
resulting
> configuration in SXP but does not create the domain." so update xl
> implementation to match.
>
> Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
>
> diff -r 32d62506e3be -r 29bd959c779a tools/libxl/xl_cmdimpl.c
> --- a/tools/libxl/xl_cmdimpl.c Tue May 24 10:14:10 2011 +0100
> +++ b/tools/libxl/xl_cmdimpl.c Tue May 24 10:26:04 2011 +0100
> @@ -1470,10 +1470,6 @@ static int create_domain(struct domain_c
>
> parse_config_data(config_file, config_data, config_len,
&d_config, &d_config.dm_info);
>
> - ret = 0;
> - if (dom_info->dryrun)
> - goto out;
> -
> if (migrate_fd >= 0) {
> if (d_config.c_info.name) {
> /* when we receive a domain we get its name from the
config
> @@ -1492,9 +1488,13 @@ static int create_domain(struct domain_c
> }
> }
>
> - if (debug)
> + if (debug || dom_info->dryrun)
> printf_info(-1, &d_config, &d_config.dm_info);
>
> + ret = 0;
> + if (dom_info->dryrun)
> + goto out;
> +
> start:
> domid = -1;
>
>
>
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|