On Tue, Jul 11, 2017 at 02:32:57PM -0400, Aaron Conole wrote:
> Hi ZhiPeng,
> 
> ZhiPeng Lu <[email protected]> writes:
> 
> > This fixes an assertion failure in command "ovs-vsctl list netflow br0",
> > if bridge br0 without any netflows.
> > $ovs-vsctl list netflow br0
> > ovs-vsctl: lib/ovsdb-idl.c:2407: assertion column_idx < class->n_columns 
> > failed 
> > in ovsdb_idl_read()
> > Aborted
> >
> > Get_row_by_id() shoudle return NULL if not find by 
> > ovsdb_idl_get_row_for_uuid().
> >
> > Signed-off-by: Zhipeng Lu <[email protected]>
> > ---
> 
> Would the following delta fit better?  I don't know about the
> correctness of the original change, so I CC'd Alex Wang (the author
> of the commit in question.)
> 
> ---
> 
> diff --git a/lib/db-ctl-base.c b/lib/db-ctl-base.c
> index 7839389..a1be462 100644
> --- a/lib/db-ctl-base.c
> +++ b/lib/db-ctl-base.c
> @@ -336,7 +336,7 @@ get_row_by_id(struct ctl_context *ctx,
>          return NULL;
>      }
>  
> -    const struct ovsdb_idl_row *final = referrer;
> +    const struct ovsdb_idl_row *final = NULL;
>      if (id->uuid_column) {
>          const struct ovsdb_datum *uuid;

Usually the "if (id->uuid_column)" test is false, and we want to return
'referrer' in that case, not NULL.

(This code is not perfectly clear.  My fault, probably.)
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to