[ovs-dev] [v5] dpif-netdev: Modified ovs-appctl dpctl/dump-flows command

Roi Dayan roid at mellanox.com
Mon Jan 20 16:20:09 UTC 2020



On 2020-01-17 6:00 PM, Stokes, Ian wrote:
> --- a/lib/dpctl.c
> +++ b/lib/dpctl.c
> @@ -829,6 +829,10 @@ format_dpif_flow(struct ds *ds, const struct
> dpif_flow *f, struct hmap *ports,
>       }
>       ds_put_cstr(ds, ", actions:");
>       format_odp_actions(ds, f->actions, f->actions_len, ports);
> +    if (dpctl_p->verbosity && f->attrs.dp_extra_info) {
> +        ds_put_format(ds, ", dp-extra-info:%s", f->attrs.dp_extra_info);
> +    }
> +    free(f->attrs.dp_extra_info);
>   }


Hi,

We see ovs-vswitchd crashes with this patch.
Looks like from the call to free() on dp_extra_info.

(gdb) bt
#0  __GI___libc_free (mem=0x1000) at malloc.c:3104
#1  0x0000000000626487 in format_dpif_flow (ds=0x7fff1ef1bb40, f=0x7fff1ef1b570, ports=0x0, dpctl_p=0x7fff1ef1bbe0) at lib/dpctl.c:835
(gdb) frame 1
#1  0x0000000000626487 in format_dpif_flow (ds=0x7fff1ef1bb40, f=0x7fff1ef1b570, ports=0x0, dpctl_p=0x7fff1ef1bbe0) at lib/dpctl.c:835
835         free(f->attrs.dp_extra_info);
(gdb) print f->attrs.dp_extra_info
$1 = 0x1000 <error: Cannot access memory at address 0x1000>
(gdb) print f->attrs
$2 = {offloaded = true, dp_layer = 0x686086 "tc", dp_extra_info = 0x1000 <error: Cannot access memory at address 0x1000>}


Thanks,
Roi


More information about the dev mailing list