[ovs-dev] [PATCH] netdev-dpdk: When no QoS set, set type to empty string
Daniele Di Proietto
diproiettod at ovn.org
Fri Aug 5 00:39:07 UTC 2016
Thanks for the fix!
I added you name to AUTHORS and applied this to master
2016-08-02 9:52 GMT-07:00 Maxime Coquelin <maxime.coquelin at redhat.com>:
>
>
> On 08/02/2016 05:19 PM, Stokes, Ian wrote:
>
>> This patch sets *typep to an empty string instead of letting it
>>> uninitialized when no QoS configuration is set.
>>>
>>> It fixes the following vswitchd crash when no QoS has been set on vhost-
>>> user interface:
>>>
>>> $> ovs-appctl -t ovs-vswitchd qos/show vhost-user1
>>>
>>> #0 0x00007efcbadf18d7 in raise () from /lib64/libc.so.6
>>> #1 0x00007efcbadf353a in abort () from /lib64/libc.so.6
>>> #2 0x000000000068d5be in ovs_abort_valist at lib/util.c:335
>>> #3 0x0000000000693d90 in vlog_abort_valist at lib/vlog.c:1204
>>> #4 0x0000000000693e17 in vlog_abort at lib/vlog.c:1218
>>> #5 0x000000000068d3ae in ovs_assert_failure at lib/util.c:72
>>> #6 0x000000000060425c in ds_put_format_valist at lib/dynamic-
>>> string.c:168
>>> #7 0x00000000006042e7 in ds_put_format at lib/dynamic-string.c:142
>>> #8 0x00000000005a9e75 in qos_unixctl_show at vswitchd/bridge.c:3185
>>> #9 0x000000000068cda1 in process_command at lib/unixctl.c:347
>>> #11 unixctl_server_run at lib/unixctl.c:400
>>> #12 0x000000000040a3ff in main at vswitchd/ovs-vswitchd.c:113
>>>
>>> Signed-off-by: Maxime Coquelin <maxime.coquelin at redhat.com>
>>> ---
>>> lib/netdev-dpdk.c | 3 +++
>>> 1 file changed, 3 insertions(+)
>>>
>>> diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index
>>> a0d541a..159fe73 100644
>>> --- a/lib/netdev-dpdk.c
>>> +++ b/lib/netdev-dpdk.c
>>> @@ -2680,6 +2680,9 @@ netdev_dpdk_get_qos(const struct netdev *netdev,
>>> *typep = dev->qos_conf->ops->qos_name;
>>> error = (dev->qos_conf->ops->qos_get
>>> ? dev->qos_conf->ops->qos_get(netdev, details): 0);
>>> + } else {
>>> + /* No QoS configuration set, return an empty string */
>>> + *typep = "";
>>> }
>>> ovs_mutex_unlock(&dev->mutex);
>>>
>>> --
>>> 2.7.4
>>>
>>
>> Thanks for the Patch Maxime.
>>
>> I tried to recreate the segfault with the steps you've outlined on my own
>> system without the patch but could not.
>>
>
> Maybe you were just lucky? Or actually, not lucky!
> Indeed, as *typep contains uninitialized value, maybe that in your case,
> its value was a valid address that pointed to 0?
>
>
>> I'm Running Fedora 22 with kernel 4.1.8-200 and gcc 5.3.1. Out of
>> interest what was your test environment?
>>
>
> Fedora 21, kernel 3.19.3-200 and gcc 4.9.2.
>
> Either way I agree that type should be set to "" when no QoS is not
>> configured.
>>
>> Acked-by: Ian Stokes <ian.stokes at intel.com>
>>
>
> Thanks!
> Maxime
>
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
>
More information about the dev
mailing list