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

Re: [Xen-devel] [PATCH] libxl: a domain can be dying but not shutdown



On 22/10/14 14:52, David Scott wrote:
> The shutdown code is only present if the domain is shutdown.
> If we attempt to extract it from the flags from a dying but not
> shutdown domain then we get values like '255' which is not a
> valid LIBXL_SHUTDOWN_REASON_. We should use LIBXL_SHUTDOWN_UNKNOWN
> in this case.
>
> Signed-off-by: David Scott <dave.scott@xxxxxxxxxx>
>
> ---
>
> This can be tested by running 2 domUs, and having one map pages from
> the other. I used a vchan connection, so I had a vchan_server granting
> pages and a vchan_client mapping them. I made sure the client is
> never going to unmap the pages (I used 'sleep' in a Mirage kernel but
> 'xl pause' from outside would probably also work) and then I
> 'xl destroyed' the server. The server domain ends up stuck in the dying
> state because the client still has a page mapped. The server domain
> is not shutdown.
>
> According to 'xl list':
>
> djs@st20:~/djs55/list$ sudo xl list
> Name                                        ID   Mem VCPUs      State   
> Time(s)
> Domain-0                                     0  5278     6     r-----   
> 10971.2
> fedora                                      12  2048     1     -b----    
> 5470.0
> (null)                                      21     0     1     -bp--d      
> 25.1
> vchan_client                                22   256     1     -b----       
> 0.0
>
> and according to my test program which calls libxl_list_domain:
>
> domain 0 shutdown = 0 dying = 0 shutdown_reason = -1
> domain 12 shutdown = 0 dying = 0 shutdown_reason = -1
> domain 21 shutdown = 0 dying = 1 shutdown_reason = 255
> domain 22 shutdown = 0 dying = 0 shutdown_reason = -1
>
> I believe this also manifests transiently during a normal 'xl destroy'.
>
> Cheers,
> Dave
> ---

Hmm.  Xen unconditionally sets the shutdown code in info->flags when
querying for dominfo.

d->shutdown_code defaults to -1 (which explains the 255, given the
mask), but only becomes valid once d->is_shutting_down gets set.

This equates to XEN_DOMINF_shutdown lower in the flags field, which is
translated to xlinfo->shutdown just ahead of the context below.

It is explicitly not valid for a dying domain, as a dying domain can be
dying for many reasons, few of which include a valid shutdown code.

Therefore, other bits of libxl.h could do with correcting, given the
buggy changeset 4d70c9c5

~Andrew


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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