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

Re: [Xen-devel] Error during domain creation on xen 4.8



On Wed, 2017-06-14 at 10:38 +0100, Wei Liu wrote:
> On Tue, Jun 13, 2017 at 11:27:27AM -0700, Sarah Newman wrote:
> > On 06/13/2017 10:28 AM, Sarah Newman wrote:
> > libxl: debug: libxl_device.c:1157:device_hotplug: calling hotplug
> > script: /etc/xen/scripts/block add
> > libxl: debug: libxl_device.c:1158:device_hotplug: extra args:
> > libxl: debug: libxl_device.c:1166:device_hotplug: env:
> > libxl: debug: libxl_device.c:1173:device_hotplug:       script:
> > /etc/xen/scripts/block
> > libxl: debug:
> > libxl_device.c:1173:device_hotplug:       XENBUS_TYPE: vbd
> > libxl: debug:
> > libxl_device.c:1173:device_hotplug:       XENBUS_PATH:
> > backend/vbd/2853/268441856
> > libxl: debug:
> > libxl_device.c:1173:device_hotplug:       XENBUS_BASE_PATH: backend
> > libxl: debug: libxl_aoutils.c:593:libxl__async_exec_start: forking
> > to execute: /etc/xen/scripts/block add
> > libxl: debug: libxl_event.c:686:libxl__ev_xswatch_deregister: watch
> > w=0x1ad98f0: deregister unregistered
> > libxl: debug: libxl_linux.c:200:libxl__get_hotplug_script_info:
> > num_exec 1, not running hotplug scripts
> > libxl: debug: libxl_device.c:1143:device_hotplug: No hotplug script
> > to execute
> > libxl: debug: libxl_event.c:686:libxl__ev_xswatch_deregister: watch
> > w=0x1ad98f0: deregister unregistered
> > libxl: error: libxl_dom.c:60:libxl__domain_cpupool: got info for
> > dom2852, wanted dom2851
> > : No such file or directory
> > libxl: debug: libxl_numa.c:502:libxl__get_numa_candidate: New best
> > NUMA placement candidate found: nr_nodes=1, nr_cpus=20,
> > nr_vcpus=184, free_memkb=151897
> > libxl: debug: libxl_numa.c:502:libxl__get_numa_candidate: New best
> > NUMA placement candidate found: nr_nodes=1, nr_cpus=20,
> > nr_vcpus=183, free_memkb=157905
> > 
> 
> No likely from the block script. The code in question is trying to
> get
> cpupool / NUMA information. Block does neither of those.
>
But then (as, in fact, is also said in the first message of the thread)
  it goes on, and domains are created, aren't they?

I believe this is this message is produced by this call:

static int nr_vcpus_on_nodes()
{
    dinfo = libxl_list_domain(CTX, &nr_doms);
    if (dinfo == NULL)
        return ERROR_FAIL;
    ...
    for (i = 0; i < nr_doms; i++) {
    ...
        cpupool = libxl__domain_cpupool(gc, dinfo[i].domid);
        if (cpupool < 0)
            goto next;
    ...
}

in libxl_numa.c.

What appears to have happened is that a domain disappeared (was
shutdown, was destroyed, crashed, whatever) between when we got the
list of existing domains (with libxl_list_domain()), and when we go
through it, with the for().

Looking at other places, in libxl and xl, where libxl_list_domain() is
used, that happens in a similar way, and I don't think we have anything
in place for preventing this race to happen... and in fact, is not
considered fatal.

Perhaps we should reorg logging so that it will produce a WARN instead
of an ERROR?

Regards,
Dario
-- 
<<This happens because I choose it to happen!>> (Raistlin Majere)
-----------------------------------------------------------------
Dario Faggioli, Ph.D, http://about.me/dario.faggioli
Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK)

Attachment: signature.asc
Description: This is a digitally signed message part

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

 


Rackspace

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