[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH]xend: fix dual destroy
Cui, Dexuan wrote: After changeset 18030 and 18064 were checked in, I found some issues when creating HVM domains with devices assigned: In XendDomainInfo.py, we have the call trace: the global function create() => vm.start() => _constructDomain(). In _constructDomain(), we invoke xc.test_assign_device() and when the function fails (maybe because iommu=1 is not specified in grub entry since iommu is 0 by defaut now; maybe because the device doesn't exist; maybe because the device has been assigned, or something) we raise VmError; Then start() will invoke self.destroy() and re-raise the exception; Next, the global create() will invoke vm.destroy() again; finally, _cleanupVm() and "self.metrics.destroy()" will be invoked again. Here when we execute metrics.destroy() for the second time, the deregister() in XendAPIStore.py will complain: there is no such an element in the dict __classes and a KeyError exception is raised! We can avoid the dual destroy by adding a check as follows. Thanks. Finding the right place to destroy the metrics object made me quite nervous. Thought I had been through enough testing after c/s 18064 to have gotten it right :-/. Even more discouraging - xend still has a significant leak. Jim _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |