On Thu, May 23, 2019 at 01:11:46PM -0700, Han Zhou wrote:
> On Thu, May 9, 2019 at 1:09 AM Dumitru Ceara <[email protected]> wrote:
> >
> > The chassis_lookup_by_name function now calls
> > sbrec_chassis_index_set_name instead of sbrec_chassis_set_name. Due to
> > the use of the wrong API memory was leaked every time a chassis was
> > looked up by name. This was mostly visible when chassis lookups had to
> > be done continuously (e.g., when two chassis were misconfigured
> > with the same system-id).
> >
> > Reported-at: https://bugzilla.redhat.com/1698462
> > Reported-by: Alexander <[email protected]>
> > Signed-off-by: Dumitru Ceara <[email protected]>
> > ---
> >  ovn/lib/chassis-index.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/ovn/lib/chassis-index.c b/ovn/lib/chassis-index.c
> > index 34d4a31..423eeee 100644
> > --- a/ovn/lib/chassis-index.c
> > +++ b/ovn/lib/chassis-index.c
> > @@ -30,7 +30,7 @@ chassis_lookup_by_name(struct ovsdb_idl_index
> *sbrec_chassis_by_name,
> >  {
> >      struct sbrec_chassis *target = sbrec_chassis_index_init_row(
> >          sbrec_chassis_by_name);
> > -    sbrec_chassis_set_name(target, name);
> > +    sbrec_chassis_index_set_name(target, name);
> >
> >      struct sbrec_chassis *retval = sbrec_chassis_index_find(
> >          sbrec_chassis_by_name, target);
> > --
> > 1.8.3.1
> >
> > _______________________________________________
> > dev mailing list
> > [email protected]
> > https://mail.openvswitch.org/mailman/listinfo/ovs-dev
> 
> Thanks Dumitru for fixing this. I see same wrong way of using index in the
> same file:
> 
>     struct sbrec_ha_chassis_group *target =
>         sbrec_ha_chassis_group_index_init_row(sbrec_ha_chassis_grp_by_name);
>     sbrec_ha_chassis_group_set_name(target, name);
> 
> May it be fixed together?
> I did check all the other files under ovn, and it seems these are the only
> places with this problem.
> 
> Acked-by: Han Zhou <[email protected]>

I folded in the additional fix and applied this to master.  Thank you!

Here is the final version:

--8<--------------------------cut here-------------------------->8--

From: Dumitru Ceara <[email protected]>
Date: Thu, 9 May 2019 10:09:23 +0200
Subject: [PATCH] ovn: Properly set the index for chassis lookup

The chassis_lookup_by_name function now calls
sbrec_chassis_index_set_name instead of sbrec_chassis_set_name. Due to
the use of the wrong API memory was leaked every time a chassis was
looked up by name. This was mostly visible when chassis lookups had to
be done continuously (e.g., when two chassis were misconfigured
with the same system-id).

Acked-by: Han Zhou <[email protected]>
Reported-at: https://bugzilla.redhat.com/1698462
Reported-by: Alexander <[email protected]>
Signed-off-by: Dumitru Ceara <[email protected]>
Signed-off-by: Ben Pfaff <[email protected]>
---
 ovn/lib/chassis-index.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/ovn/lib/chassis-index.c b/ovn/lib/chassis-index.c
index 34d4a31eb339..10f70fb4a18f 100644
--- a/ovn/lib/chassis-index.c
+++ b/ovn/lib/chassis-index.c
@@ -30,7 +30,7 @@ chassis_lookup_by_name(struct ovsdb_idl_index 
*sbrec_chassis_by_name,
 {
     struct sbrec_chassis *target = sbrec_chassis_index_init_row(
         sbrec_chassis_by_name);
-    sbrec_chassis_set_name(target, name);
+    sbrec_chassis_index_set_name(target, name);
 
     struct sbrec_chassis *retval = sbrec_chassis_index_find(
         sbrec_chassis_by_name, target);
@@ -55,7 +55,7 @@ ha_chassis_group_lookup_by_name(
 {
     struct sbrec_ha_chassis_group *target =
         sbrec_ha_chassis_group_index_init_row(sbrec_ha_chassis_grp_by_name);
-    sbrec_ha_chassis_group_set_name(target, name);
+    sbrec_ha_chassis_group_index_set_name(target, name);
 
     struct sbrec_ha_chassis_group *retval =
         sbrec_ha_chassis_group_index_find(sbrec_ha_chassis_grp_by_name,
-- 
2.20.1

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to