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

[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



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