Re: [libvirt] [PATCH] Revert "vircgroup: cleanup controllers not managed by systemd on error"

2018-09-28 Thread Marc Hartmayer
On Thu, Sep 27, 2018 at 04:13 PM +0200, Pavel Hrdina  wrote:
> This reverts commit 1602aa28f820ada66f707cef3e536e8572fbda1e.
>
> There is no need to call virCgroupRemove() nor virCgroupFree() if
> virCgroupEnableMissingControllers() fails because it will not modify
> 'group' at all.  The cleanup is done in virCgroupMakeGroup().
>
> Signed-off-by: Pavel Hrdina 
> ---
>  src/util/vircgroup.c | 25 ++---
>  1 file changed, 10 insertions(+), 15 deletions(-)
>
> diff --git a/src/util/vircgroup.c b/src/util/vircgroup.c
> index f90906e4ad..548c873da8 100644
> --- a/src/util/vircgroup.c
> +++ b/src/util/vircgroup.c
> @@ -1055,7 +1055,6 @@ virCgroupNewMachineSystemd(const char *name,
>  int rv;
>  virCgroupPtr init;
>  VIR_AUTOFREE(char *) path = NULL;
> -virErrorPtr saved = NULL;
>
>  VIR_DEBUG("Trying to setup machine '%s' via systemd", name);
>  if ((rv = virSystemdCreateMachine(name,
> @@ -1088,24 +1087,20 @@ virCgroupNewMachineSystemd(const char *name,
>
>  if (virCgroupEnableMissingControllers(path, pidleader,
>controllers, group) < 0) {
> -goto error;
> +return -1;
>  }
>
> -if (virCgroupAddProcess(*group, pidleader) < 0)
> -goto error;
> +if (virCgroupAddProcess(*group, pidleader) < 0) {
> +virErrorPtr saved = virSaveLastError();
> +virCgroupRemove(*group);
> +virCgroupFree(group);
> +if (saved) {
> +virSetError(saved);
> +virFreeError(saved);
> +}
> +}
>
>  return 0;
> -
> - error:
> -saved = virSaveLastError();
> -virCgroupRemove(*group);
> -virCgroupFree(group);
> -if (saved) {
> -virSetError(saved);
> -virFreeError(saved);
> -}
> -
> -return -1;
>  }
>
>
> --
> 2.17.1
>
> --
> libvir-list mailing list
> libvir-list@redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list
>

Reviewed-by: Marc Hartmayer 

--
Kind regards / Beste Grüße
   Marc Hartmayer

IBM Deutschland Research & Development GmbH
Vorsitzende des Aufsichtsrats: Martina Koederitz
Geschäftsführung: Dirk Wittkopp
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294


--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [PATCH] Revert "vircgroup: cleanup controllers not managed by systemd on error"

2018-09-27 Thread Pavel Hrdina
On Thu, Sep 27, 2018 at 04:32:37PM +0200, Fabiano Fidêncio wrote:
> On Thu, 2018-09-27 at 16:13 +0200, Pavel Hrdina wrote:
> > This reverts commit 1602aa28f820ada66f707cef3e536e8572fbda1e.
> > 
> > There is no need to call virCgroupRemove() nor virCgroupFree() if
> > virCgroupEnableMissingControllers() fails because it will not modify
> > 'group' at all.  The cleanup is done in virCgroupMakeGroup().
> 
> I wouldn't mention "The cleanup is done in virCGroupMakeGroup() because
> there's no cleanup needed from virCgroupEnableMissingControllers() as
> groups is only modified in case of success.

It's not a cleanup of 'group' variable but cleanup of the directories
created on host.

> I'd wait for John's ACK as well, but:
> Reviewed-by: Fabiano Fidêncio 

I can modify the commit message to make it more obvious.

Pavel


signature.asc
Description: PGP signature
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [PATCH] Revert "vircgroup: cleanup controllers not managed by systemd on error"

2018-09-27 Thread Fabiano Fidêncio
On Thu, 2018-09-27 at 16:13 +0200, Pavel Hrdina wrote:
> This reverts commit 1602aa28f820ada66f707cef3e536e8572fbda1e.
> 
> There is no need to call virCgroupRemove() nor virCgroupFree() if
> virCgroupEnableMissingControllers() fails because it will not modify
> 'group' at all.  The cleanup is done in virCgroupMakeGroup().

I wouldn't mention "The cleanup is done in virCGroupMakeGroup() because
there's no cleanup needed from virCgroupEnableMissingControllers() as
groups is only modified in case of success.

I'd wait for John's ACK as well, but:
Reviewed-by: Fabiano Fidêncio 

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [PATCH] Revert "vircgroup: cleanup controllers not managed by systemd on error"

2018-09-27 Thread John Ferlan



On 9/27/18 10:13 AM, Pavel Hrdina wrote:
> This reverts commit 1602aa28f820ada66f707cef3e536e8572fbda1e.
> 
> There is no need to call virCgroupRemove() nor virCgroupFree() if
> virCgroupEnableMissingControllers() fails because it will not modify
> 'group' at all.  The cleanup is done in virCgroupMakeGroup().
> 
> Signed-off-by: Pavel Hrdina 
> ---
>  src/util/vircgroup.c | 25 ++---
>  1 file changed, 10 insertions(+), 15 deletions(-)
> 

For this patch,

Reviewed-by: John Ferlan 

However, of course this tickle's Coverity (that's what happens when
someone makes a change in code).

Anyway, it seems calling virCgroupSetOwner with a NULL cgroup as could
happen in virLXCCgroupCreate if virCgroupNewMachine returns 0 and cgroup
== NULL, will cause a problem.

Yes, this existing and no I'm not knowledgeable (nor is Coverity for
that matter) to know if having def->idmap.uidmap is "related".

John

It's like an onion, peel one layer and we find something else.

> diff --git a/src/util/vircgroup.c b/src/util/vircgroup.c
> index f90906e4ad..548c873da8 100644
> --- a/src/util/vircgroup.c
> +++ b/src/util/vircgroup.c
> @@ -1055,7 +1055,6 @@ virCgroupNewMachineSystemd(const char *name,
>  int rv;
>  virCgroupPtr init;
>  VIR_AUTOFREE(char *) path = NULL;
> -virErrorPtr saved = NULL;
>  
>  VIR_DEBUG("Trying to setup machine '%s' via systemd", name);
>  if ((rv = virSystemdCreateMachine(name,
> @@ -1088,24 +1087,20 @@ virCgroupNewMachineSystemd(const char *name,
>  
>  if (virCgroupEnableMissingControllers(path, pidleader,
>controllers, group) < 0) {
> -goto error;
> +return -1;
>  }
>  
> -if (virCgroupAddProcess(*group, pidleader) < 0)
> -goto error;
> +if (virCgroupAddProcess(*group, pidleader) < 0) {
> +virErrorPtr saved = virSaveLastError();
> +virCgroupRemove(*group);
> +virCgroupFree(group);
> +if (saved) {
> +virSetError(saved);
> +virFreeError(saved);
> +}
> +}
>  
>  return 0;
> -
> - error:
> -saved = virSaveLastError();
> -virCgroupRemove(*group);
> -virCgroupFree(group);
> -if (saved) {
> -virSetError(saved);
> -virFreeError(saved);
> -}
> -
> -return -1;
>  }
>  
>  
> 

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


[libvirt] [PATCH] Revert "vircgroup: cleanup controllers not managed by systemd on error"

2018-09-27 Thread Pavel Hrdina
This reverts commit 1602aa28f820ada66f707cef3e536e8572fbda1e.

There is no need to call virCgroupRemove() nor virCgroupFree() if
virCgroupEnableMissingControllers() fails because it will not modify
'group' at all.  The cleanup is done in virCgroupMakeGroup().

Signed-off-by: Pavel Hrdina 
---
 src/util/vircgroup.c | 25 ++---
 1 file changed, 10 insertions(+), 15 deletions(-)

diff --git a/src/util/vircgroup.c b/src/util/vircgroup.c
index f90906e4ad..548c873da8 100644
--- a/src/util/vircgroup.c
+++ b/src/util/vircgroup.c
@@ -1055,7 +1055,6 @@ virCgroupNewMachineSystemd(const char *name,
 int rv;
 virCgroupPtr init;
 VIR_AUTOFREE(char *) path = NULL;
-virErrorPtr saved = NULL;
 
 VIR_DEBUG("Trying to setup machine '%s' via systemd", name);
 if ((rv = virSystemdCreateMachine(name,
@@ -1088,24 +1087,20 @@ virCgroupNewMachineSystemd(const char *name,
 
 if (virCgroupEnableMissingControllers(path, pidleader,
   controllers, group) < 0) {
-goto error;
+return -1;
 }
 
-if (virCgroupAddProcess(*group, pidleader) < 0)
-goto error;
+if (virCgroupAddProcess(*group, pidleader) < 0) {
+virErrorPtr saved = virSaveLastError();
+virCgroupRemove(*group);
+virCgroupFree(group);
+if (saved) {
+virSetError(saved);
+virFreeError(saved);
+}
+}
 
 return 0;
-
- error:
-saved = virSaveLastError();
-virCgroupRemove(*group);
-virCgroupFree(group);
-if (saved) {
-virSetError(saved);
-virFreeError(saved);
-}
-
-return -1;
 }
 
 
-- 
2.17.1

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list