On 21.03.2014 01:20, Wangyufei (James) wrote: > Yes, it's just a race condition here. It's not LXC, it's just qemu-driver, and it's not using systemd for cgroup management. > (Running hypervisor: QEMU 1.5.1) > > We can run these two command to clear cgroup dirctory 'machine' first: > service cgconfig restart > service cgred restart > > Then we start multi VMs with 'virsh start' at the same time. > > Stack 1: > #0 qemuInitCgroup (driver=0x7f13a0d01570, vm=0x7f138c0116a0, startup=true) > at qemu/qemu_cgroup.c:742 > #1 0x00007f1394595b7d in qemuSetupCgroup (driver=0x7f13a0d01570, > vm=0x7f138c0116a0, nodemask=0x0) at qemu/qemu_cgroup.c:857 > #2 0x00007f13945b40c5 in qemuProcessStart (conn=0x7f13a0d92870, > driver=0x7f13a0d01570, vm=0x7f138c0116a0, migrateFrom=0x0, stdin_fd=-1, > stdin_path=0x0, snapshot=0x0, vmop=VIR_NETDEV_VPORT_PROFILE_OP_CREATE, > flags=1) at qemu/qemu_process.c:3828 > #3 0x00007f1394606c2c in qemuDomainObjStart (conn=0x7f13a0d92870, > driver=0x7f13a0d01570, vm=0x7f138c0116a0, flags=0) > at qemu/qemu_driver.c:5852 > #4 0x00007f1394606e82 in qemuDomainCreateWithFlags (dom=0x7f138c01c490, > flags=0) at qemu/qemu_driver.c:5904 > #5 0x00007f1394606f0b in qemuDomainCreate (dom=0x7f138c01c490) > at qemu/qemu_driver.c:5922 > #6 0x00007f139ffc6e51 in virDomainCreate (domain=0x7f138c01c490) > at libvirt.c:9357 > #7 0x00007f13a0a46ca2 in remoteDispatchDomainCreate (server=0x7f13a0cd9500, > client=0x7f138c01b060, msg=0x7f138c014920, rerr=0x7f13995d0b10, > args=0x7f138c01c4d0) at remote_dispatch.h:2931 > #8 0x00007f13a0a46da4 in remoteDispatchDomainCreateHelper ( > > > Stack 2: > #0 virCgroupMakeGroup (parent=0x7f138c01e1a0, group=0x7f138c0080f0, > create=true, flags=0) at util/vircgroup.c:751 > #1 0x00007f139fec4f89 in virCgroupNewPartition ( > path=0x7f138c008ee0 "/machine", create=true, controllers=-1, > group=0x7f13995d00f8) at util/vircgroup.c:1286 > #2 0x00007f1394593888 in qemuInitCgroup (driver=0x7f13a0d01570, > vm=0x7f138c0116a0, startup=true) at qemu/qemu_cgroup.c:779 > > Thread A and Thread B start VMs at the same time. > In virCgroupMakeGroup: > > if (!virFileExists(path)) {// Thread A and Thread B do the test at the same time and both passed. > if (!create || > mkdir(path, 0755) < 0) {//If thread A succeed here, then B will fail, and B will do clear to remove the 'machine' directory, then A may fail to find the dirctory removed by B. > Okay, ACKed and pushed then. Michal -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list