WARNING - OLD ARCHIVES

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/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

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

To: fantonifabio <fantonifabio@xxxxxxxxxx>, "Ian.Campbell" <Ian.Campbell@xxxxxxxxxxxxx>
Subject: AW: Re: AW: [Xen-devel] Possible Compatibility Bug in xl create
From: "Carsten Schiers" <carsten@xxxxxxxxxx>
Date: Wed, 25 May 2011 22:47:29 +0200
Cc: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>, "Stefano.Stabellini" <Stefano.Stabellini@xxxxxxxxxxxxx>
Delivery-date: Wed, 25 May 2011 13:48:47 -0700
Dkim-signature: v=1; a=rsa-sha256; c=simple; d=mail.zeus06.de; h=date: from:to:cc:message-id:in-reply-to:subject:mime-version: content-type:content-transfer-encoding; q=dns/txt; s=beta; bh=KS ap1OP/5aOYtkaUzsqjCqjsYMFWZWJKzoXO3kXbVeo=; b=Vx0ArawQQ0DLms59B7 mC9bDVdMIXb/2AcgRUJMrKOjHao0LpXdeRtDSsuqLWzlZLnkfwPmVHKS+vWfLFGQ CHFjRkMNbOKEvfVB22Z7AbGUxRL5pzkm2XbsTbx4qqrmz6+dHlJBnP136gIR/i4f KLtmT9HFtJjONFKRaiQuMDt1Q=
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <H0000067000adfef.1306355799.uhura.space.zz@MHS>
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/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
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