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:
for d in
target = xstransact.Read('/local/domain/' + d +
if target is not None and int(target) is self.domid
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
The fix is to change that line to
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).