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

Ilya Maximets i.maximets at ovn.org
Mon Jan 20 16:21:37 UTC 2020


On 20.01.2020 17:20, Roi Dayan wrote:
> 
> 
> 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.

Yes, try this: https://patchwork.ozlabs.org/patch/1225037/

> 
> (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