John Weekes
2010-May-14 22:02 UTC
[Xen-devel] Problem starting stubdoms past a domid of 257 + fix
I''m running Xen 4.0.1-rc1-pre (21122:7d1d4abd8b44). In this version, and in all other Xen 3.5-unstable + versions that I''ve looked at, is this function in XendDomainInfo.py: def getStubdomDomid(self): dom_list = xstransact.List(''/local/domain'') for d in dom_list: target = xstransact.Read(''/local/domain/'' + d + ''/target'') if target is not None and int(target) is self.domid : return int(d) return None The bolded line has a bug in it, unfortunately. This function is used in domain destruction, and destruction works properly when a domain has a stubdom, but only until it reaches a domid of around 257. Past that, it breaks. This can be easily seen by simply starting a bunch of HVMs with stubdoms (I tested by creating + destroying the same one, over and over). What''s interesting is that the function works at all -- "is" really does not seem to be the right comparator to use here. The fix is to change that line to read: if target is not None and int(target) == self.domid : I have patched all of my existing Xen installs, and tested the fix. This might make a good candidate for inclusion in 4.0.1, as well as xen-unstable (if it has the same piece of code). -John Weekes _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Pasi Kärkkäinen
2010-May-15 10:26 UTC
Re: [Xen-devel] Problem starting stubdoms past a domid of 257 + fix
On Fri, May 14, 2010 at 03:02:04PM -0700, John Weekes wrote:> I''m running Xen 4.0.1-rc1-pre (21122:7d1d4abd8b44). In this version, and > in all other Xen 3.5-unstable + versions that I''ve looked at, is > this function in XendDomainInfo.py: > def getStubdomDomid(self): > dom_list = xstransact.List(''/local/domain'') > for d in dom_list: > target = xstransact.Read(''/local/domain/'' + d + ''/target'') > if target is not None and int(target) is self.domid : > return int(d) > return None > The bolded line has a bug in it, unfortunately. This function is used in > domain destruction, and destruction works properly when a domain has a > stubdom, but only until it reaches a domid of around 257. Past that, it > breaks. This can be easily seen by simply starting a bunch of HVMs with > stubdoms (I tested by creating + destroying the same one, over and over). > > What''s interesting is that the function works at all -- "is" really does > not seem to be the right comparator to use here. > > The fix is to change that line to read: > if target is not None and int(target) == self.domid : > I have patched all of my existing Xen installs, and tested the fix. This > might make a good candidate for inclusion in 4.0.1, as well as > xen-unstable (if it has the same piece of code). >You might want to submit an actual patch together with a Signed-off-by line. See the end of: http://wiki.xensource.com/xenwiki/XenFaq -- Pasi _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
John Weekes
2010-May-15 16:28 UTC
Re: [Xen-devel] Problem starting stubdoms past a domid of 257 + fix
> You might want to submit an actual patchI could work on this further next week. My hope was that someone with the build setup already configured for both versions could create one in just a few seconds, though.> together with a Signed-off-by line.Not needed in this case. -John _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel