Daniel P. Berrange berrange at redhat.com
Sat Jan 26 03:16:40 UTC 2008

On Fri, Jan 25, 2008 at 06:39:00PM -0800, Russ Blaine wrote:
> Richard W.M. Jones wrote:
> >Russ Blaine wrote:
> >>On Solaris-based xen 3.1.2 I am seeing virDomainGetInfo() often 
> >>returning VIR_DOMAIN_NOSTATE in dominfo.state for domUs that are 
> >>powered on and running. What exactly does VIR_DOMAIN_NOSTATE mean? Why 
> >>does it exist? I suspect it is a catch-all in the API for hosts that 
> >>don't entirely have their act together, that do not always return a 
> >>valid guest state. Is that the case?
> >>
> >>Is anyone else seeing this on Xen?
> >
> >It means that we query xcnd and there is no domain/state part of the 
> >sexpr for the domain.

Actually we will most likely be getting this data direct from the hypervisor
rather than XenD.

> [ libvirt 0.4.0; I just subscribed to the list so it might take a bit for 
> traffic to flow to me. ]
> When the problem occurs, the state line in xm list --long is:
>      (state ------)
> And in the 'xm list' it looks like this:
> Name                                  ID   Mem VCPUs      State   Time(s)
> abc2                                  27   512     1     ------      9.9

Can you edit the src/xen_internal.c file and in the xenHypervisorGetDomInfo()
method, add a printf() for the 'domain_flags' flags variable.  IMHO the
way we deal with this isn't quite correct. We merely mask out the high 
bits and then switch on the resulting value. This isn't the way the Xen
hypervisor uses this field though. Xen more or less uses the whole thing
as as bitmask, allowing near arbitrary combinations of bits to be set.
So I think what is happening is there's a combo of bits set which cause
the switch() statement to fail all cases, resulting in NOSTATE.

We'll probably need to replace the switch(domain_flags) with something 
which explicitly tests for the bits we're interested in, rather than
looking at the value as a whole.

|=- Red Hat, Engineering, Emerging Technologies, Boston.  +1 978 392 2496 -=|
|=-           Perl modules: http://search.cpan.org/~danberr/              -=|
|=-               Projects: http://freshmeat.net/~danielpb/               -=|
|=-  GnuPG: 7D3B9505   F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505  -=| 

More information about the libvir-list mailing list