[libvirt] [PATCH] LXC fix virCgroupGetValueStr on handling a string terminated with '\n'

Daniel Veillard veillard at redhat.com
Mon Oct 19 12:39:35 UTC 2009


On Sat, Oct 17, 2009 at 09:30:12AM +0900, Ryota Ozaki wrote:
> Ooop! The patch lost the last modification...so please use the new one, sorry.
> 
> On Fri, Oct 16, 2009 at 9:45 PM, Daniel P. Berrange <berrange at redhat.com> wrote:
> > On Fri, Oct 16, 2009 at 05:05:27PM +0900, Ryota Ozaki wrote:
> 
> >> BTW, by the defect I first got the following error and it made me confused.
> >>
> >> # virsh -c lxc:/// dominfo 4930
> >> Id:             4930
> >> Name:           lxc
> >> UUID:           084369a0-956a-3010-fc37-ddeb4d627e69
> >> OS Type:        exe
> >> Autostart:      disable
> >> error: this function is not supported by the hypervisor: virNodeGetSecurityModel
> >>
> >> The really error happens in lxcDomainGetInfo, so I guess something is wrong
> >> with internal error propagation. Anyone know this unexpected behavior?
> >
> > This looks rather odd - I can't think of anything which could cause this
> > to happen - virsh is supposed to be filtering out that error message
> 
> OK, I've looked into a bit deep and found the following sequence happens.
> 
> In cmdDominfo (virsh.c), if virDomainGetInfo fails, 'ret' is set with FALSE.
> Even so, further virNodeGetSecurityModel is called too. And if it also fails
> then VIR_ERR_NO_SUPPORT is set. Normally, VIR_ERR_NO_SUPPORT does not lead
> cmdDominfo failed, however, 'ret' is previously set with FALSE, then virsh
> fails.

  Okidoc, I applied the last patch. Thanks !

  I wonder if we also need to fix the logic in virsh.c:cmdDominfo() ,
maybe by making:

  if (last_error->code != VIR_ERR_NO_SUPPORT) {

  into

  if ((last_error->code != VIR_ERR_NO_SUPPORT) && (ret != FALSE)) {

or by resetting last_error as well as setting ret to false when
virDomainGetInfo() fails.

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list