[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

AW: Re: AW: [Xen-devel] Possible Compatibility Bug in xl create



OK, last message for today ;o).

--wait option of xl will not wait for domain to have shut down.

BR,
Carsten.

-----Ursprüngliche Nachricht-----
Von: Carsten Schiers 
Gesendet: Mittwoch, 25. Mai 2011 22:37
An: 'fantonifabio'; 'Ian.Campbell'
Cc: 'xen-devel'; 'Stefano.Stabellini'
Betreff: AW: Re: AW: [Xen-devel] Possible Compatibility Bug in xl create

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.