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

Re: [Xen-devel] xl list -l doesn't work for incoming domain



On Wed, Nov 12, 2014 at 10:04:35AM -0500, Zhigang Wang wrote:
> On 11/12/2014 09:52 AM, Ian Campbell wrote:
> > On Wed, 2014-11-12 at 09:48 -0500, Zhigang Wang wrote:
> >> On 11/12/2014 09:40 AM, Ian Campbell wrote:
> >>> On Wed, 2014-11-12 at 09:36 -0500, Zhigang Wang wrote:
> >>>> Also I want clarify one thing: the @introduceDomain watch is triggered 
> >>>> at the same
> >>>> time for xm/xend and xl: when VM fully migrated.
> >>>>
> >>>> The different between xm/xend and xl is: xend will populate destination 
> >>>> side VM 
> >>>> xenstore entries at the beginning of migration.
> >>>
> >>> Do you mean *before* @introduceDomain has triggered?
> >>
> >> Yes, from my test. I didn't check the code logic yet.
> > 
> > I think anything which is trying to inspect the state of a domain before
> > the corresponding @introduceDomain and expecting anything more complex
> > than the fact of that domain's existence is broken.
> ...
> > IOW the json associated with such a domain should be:
> >     {
> >         "domid": 123,
> >         "config": {}
> >     }
> > Or even
> >     {
> >         "domid": 123,
> >     }
> > 
> > No more or less.
> 
> Here is the xl list output:
> 
>     # xl list
>     Name                                          ID   Mem VCPUs      State   
> Time(s)
>     Domain-0                                       0   856     4     r-----   
>  2758.9
>     0004fb00000600003f327a843a5f2b72--incoming     7   131     1     --p---   
>     0.0
> 
> So we don't even want to match the two results?
>  

I can make some change in *xl*, when it knows a guest is actually there
but doesn't have a valid result returned from the new API, it generates
a stub by transforming the short result to json output.

This may solve your problem short term. It matches my intention of
"caller knows best about what to do when that API call fails", and
make short and long output consistent to a degree. However, your
toolstack is still prone to breakage in the long run.

I would like to suggest you modify your toolstack so that it
properly uses the interface provided by *libxl*.  If the interface /
machinery you need doesn't exist we can talk about it on xen-devel.

It just occurs to me that the use of @introduceDomain is very hard to
justify (not blaming you, just I'm not sure whether it should be used
like that). In any case, the thread should not develop into a long
discussion on what means what and what happens before / after what.

Wei.

> >> I designed a test: set eth0 to low speed:
> >>
> >>     $ ethtool -s eth0 speed 10 duplex half
> >>
> >> and then migrate the VM. I can see the watch been triggered very late 
> >> (couple minutes later after migration).
> > 
> > A couple of minutes after *starting* the migration (i.e. the couple of
> > minutes is just the time taken to migrate) or a couple of minutes after
> > *finishing* the migration (which would be unfortunate and should be
> > investigated).
> 
> Sorry I didn't say it clearly. I mean couple minutes after the migration 
> started, but before the migration finish.
> 
> >From xend code xend/XendDomainInfo.py:
> 
> 
>     def completeRestore(self, store_mfn, console_mfn):
> 
>         log.debug("XendDomainInfo.completeRestore")
> 
>         self.store_mfn = store_mfn
>         self.console_mfn = console_mfn
> 
>         self._introduceDomain()
>         self.image = image.create(self, self.info)
>         if self.image:
>             self.image.createDeviceModel(True)
>         self._storeDomDetails()
>         self._registerWatches()
>         self.refreshShutdown()
> 
>         log.debug("XendDomainInfo.completeRestore done")
> 
> It seems the self._introduceDomain() does called at the end of migration 
> after memory transfer.
> 
> Thanks,
> 
> Zhigang
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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