[libvirt] [PATCH] Suppress cgroup error message on sucess in qemudStartVMDaemon

Daniel Veillard veillard at redhat.com
Mon Dec 14 09:32:54 UTC 2009


On Mon, Dec 14, 2009 at 07:31:35AM +0900, Ryota Ozaki wrote:
> On Thu, Nov 19, 2009 at 11:27 PM, Daniel Veillard <veillard at redhat.com> wrote:
> > On Thu, Nov 19, 2009 at 09:45:48PM +0900, Ryota Ozaki wrote:
> >> Even if qemudStartVMDaemon suceeds, an error is logged such as
> >> 'qemuRemoveCgroup:1778 : internal error Unable to find cgroup for'.
> >> This is because qemudStartVMDaemon calls qemuRemoveCgroup to
> >> ensure that old cgroup does not remain. This workaround makes
> >> sense but leaving an error message may confuse users.
> >>
> >> This patch simply adds an option to suppress the error
> >> log if not needed.
> >> ---
> >>  src/qemu/qemu_driver.c |   16 +++++++++-------
> >>  1 files changed, 9 insertions(+), 7 deletions(-)
> >>
> >> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
> >> index a4a87ac..84ee942 100644
> >> --- a/src/qemu/qemu_driver.c
> >> +++ b/src/qemu/qemu_driver.c
> >> @@ -1763,7 +1763,8 @@ cleanup:
> >>
> >>  static int qemuRemoveCgroup(virConnectPtr conn,
> >>                              struct qemud_driver *driver,
> >> -                            virDomainObjPtr vm)
> >> +                            virDomainObjPtr vm,
> >> +                            int quiet)
> >>  {
> >>      virCgroupPtr cgroup;
> >>      int rc;
> >> @@ -1773,9 +1774,10 @@ static int qemuRemoveCgroup(virConnectPtr conn,
> >>
> >>      rc = virCgroupForDomain(driver->cgroup, vm->def->name, &cgroup, 0);
> >>      if (rc != 0) {
> >> -        qemudReportError(conn, NULL, NULL, VIR_ERR_INTERNAL_ERROR,
> >> -                         _("Unable to find cgroup for %s\n"),
> >> -                         vm->def->name);
> >> +        if (!quiet)
> >> +            qemudReportError(conn, NULL, NULL, VIR_ERR_INTERNAL_ERROR,
> >> +                             _("Unable to find cgroup for %s\n"),
> >> +                             vm->def->name);
> >>          return rc;
> >>      }
> >>
> >> @@ -2142,7 +2144,7 @@ static int qemudStartVMDaemon(virConnectPtr conn,
> >>          return -1;
> >>
> >>      /* Ensure no historical cgroup for this VM is lieing around bogus settings */
> >> -    qemuRemoveCgroup(conn, driver, vm);
> >> +    qemuRemoveCgroup(conn, driver, vm, 1);
> >>
> >>      if ((vm->def->ngraphics == 1) &&
> >>          vm->def->graphics[0]->type == VIR_DOMAIN_GRAPHICS_TYPE_VNC &&
> >> @@ -2327,7 +2329,7 @@ cleanup:
> >>          VIR_FREE(vm->def->seclabel.label);
> >>          VIR_FREE(vm->def->seclabel.imagelabel);
> >>      }
> >> -    qemuRemoveCgroup(conn, driver, vm);
> >> +    qemuRemoveCgroup(conn, driver, vm, 0);
> >>      if ((vm->def->ngraphics == 1) &&
> >>          vm->def->graphics[0]->type == VIR_DOMAIN_GRAPHICS_TYPE_VNC &&
> >>          vm->def->graphics[0]->data.vnc.autoport)
> >> @@ -2416,7 +2418,7 @@ static void qemudShutdownVMDaemon(virConnectPtr conn,
> >>      qemuDomainReAttachHostDevices(conn, driver, vm->def);
> >>
> >>  retry:
> >> -    if ((ret = qemuRemoveCgroup(conn, driver, vm)) < 0) {
> >> +    if ((ret = qemuRemoveCgroup(conn, driver, vm, 0)) < 0) {
> >>          if (ret == -EBUSY && (retries++ < 5)) {
> >>              usleep(200*1000);
> >>              goto retry;
> >
> >  ACK, looks fine to me, but I would rather apply this after the 0.7.3
> > release as this is just a superfluous error message
> >  Please remind me to push this next week if I forget :-)
> 
> I remember this patch ;-) Could you apply it?

  Ah, right ! Thanks for the reminder !

    Done,

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