[ovs-dev] [PATCH v3] netdev-vport: Use the dst_port in tunnel netdev name

Chris Mi chrism at mellanox.com
Sat Apr 13 08:18:15 UTC 2019


Hi Ben,

> -----Original Message-----
> From: Ben Pfaff <blp at ovn.org>
> Sent: Saturday, April 13, 2019 1:38 AM
> To: Chris Mi <chrism at mellanox.com>
> Cc: ovs-dev at openvswitch.org; fbl at sysclose.org;
> simon.horman at netronome.com; Roi Dayan <roid at mellanox.com>
> Subject: Re: [ovs-dev][PATCH v3] netdev-vport: Use the dst_port in tunnel
> netdev name
> 
> On Mon, Apr 01, 2019 at 08:37:23AM -0400, Chris Mi wrote:
> > If tunnel device dst_port is not the default one, "ovs-dpctl dump-flows"
> > will fail. The error message for vxlan is:
> >
> > netdev_linux|INFO|ioctl(SIOCGIFINDEX) on vxlan_sys_4789 device failed:
> > No such device
> >
> > That's because when calling netdev_vport_construct() for netdev
> > vxlan_sys_xxxx, the default dst_port is used. Actually, the dst_port
> > value is in the netdev name. Use it to avoid the error.
> >
> > Signed-off-by: Chris Mi <chrism at mellanox.com>
> > Reviewed-by: Roi Dayan <roid at mellanox.com>
> 
> Thanks for the bug fix.
> 
> This makes lots of tests fail.  Here's a typical Address Sanitizer
> report:
> 
> ==========================================================
> =======
> ==17273==ERROR: AddressSanitizer: SEGV on unknown address
> 0x000000000000 (pc 0x7f59d4295571 bp 0x7ffd20ad0cf0 sp 0x7ffd20ad0478 T0)
> ==17273==The signal is caused by a READ memory access.
> ==17273==Hint: address points to the zero page.
>     #0 0x7f59d4295570  (/lib/x86_64-linux-gnu/libc.so.6+0x15c570)
>     #1 0x7f59d49ba3bc  (/lib/x86_64-linux-gnu/libasan.so.5+0xa83bc)
>     #2 0x555e5c332bc0 in netdev_vport_construct ../lib/netdev-vport.c:202
>     #3 0x555e5c3366fc in netdev_open ../lib/netdev.c:426
>     #4 0x555e5c161916 in iface_do_create ../vswitchd/bridge.c:1789
>     #5 0x555e5c161916 in iface_create ../vswitchd/bridge.c:1842
>     #6 0x555e5c161916 in bridge_add_ports__ ../vswitchd/bridge.c:936
>     #7 0x555e5c16e656 in bridge_add_ports ../vswitchd/bridge.c:952
>     #8 0x555e5c16e656 in bridge_reconfigure ../vswitchd/bridge.c:666
>     #9 0x555e5c17584e in bridge_run ../vswitchd/bridge.c:3037
>     #10 0x555e5c157534 in main ../vswitchd/ovs-vswitchd.c:125
>     #11 0x7f59d415d09a in __libc_start_main ../csu/libc-start.c:308
>     #12 0x555e5c159f79 in _start (/home/blp/nicira/ovs/_build/vswitchd/ovs-
> vswitchd+0x11af79)
> 
> AddressSanitizer can not provide additional info.
> SUMMARY: AddressSanitizer: SEGV (/lib/x86_64-linux-
> gnu/libc.so.6+0x15c570)
> ==17273==ABORTING
Thanks for verifying it. I think the error is because strlen() can't deal with NULL pointer correctly.
I added another check for NULL pointer. Hopefully we're fine this time. Please help review v4 again.

Thanks,
Chris
> 
> Thanks,
> 
> Ben.


More information about the dev mailing list