[ovs-dev] [patch v3 1/4] conntrack: Stop exporting internal datastructures.

Darrell Ball dlu998 at gmail.com
Tue Dec 11 03:18:43 UTC 2018


On Mon, Dec 10, 2018 at 5:22 PM Ben Pfaff <blp at ovn.org> wrote:

> On Mon, Dec 10, 2018 at 03:47:17PM -0800, Ben Pfaff wrote:
> > On Sun, Dec 02, 2018 at 09:17:16PM -0800, Darrell Ball wrote:
> > > Remove the exporting of the main internal conntrack datastructure.
> > > These are made static.  Also stop passing around a pointer parameter
> > > to all the internal datastructures; only one or two is used
> > > for a given code path and these can be referenced directly and passed
> > > specifically where appropriate.
> > >
> > > Signed-off-by: Darrell Ball <dlu998 at gmail.com>
> >
> > Seems fine, I applied this to master.  Thank you!
>
> Actually I had to un-apply this because:
>
> 1099: dpctl - add-dp del-dp                           FAILED (
> ovs-macros.at:193)
> 1100: dpctl - add-if set-if del-if                    FAILED (
> ovs-macros.at:193)
>
> due to the following Address Sanitizer reports.  The following is for
> 1099 but the one for 1100 is almost identical:
>
> =================================================================
> ==17824==ERROR: AddressSanitizer: SEGV on unknown address 0xeafffba8 (pc
> 0xf657d67d bp 0x00000000 sp 0xffc65150 T0)
> ==17824==The signal is caused by a READ memory access.
>     #0 0xf657d67c in __GI___pthread_timedjoin_ex
> (/lib/i386-linux-gnu/libpthread.so.0+0x767c)
>     #1 0xf657d5c3 in pthread_join
> (/lib/i386-linux-gnu/libpthread.so.0+0x75c3)
>     #2 0xf7522c24 in conntrack_destroy ../lib/conntrack.c:378
>


I don't see this using the address sanitizer; I am using

*../configure** CFLAGS="-g -O2 **-march=native**  -fsanitize=address
-fno-omit-frame-pointer -fno-common" **--with-linux=/lib/modules/`uname
-r`/build CC=gcc **--enable-Werror*

Furthermore, I don't see a functional change here, but I'll double check.

I do get a different "report" though

../lib/odp-util.c: In function 'parse_odp_key_mask_attr':
../lib/odp-util.c:5188:30: error: 'mask_offset' may be used uninitialized
in this function [-Werror=maybe-uninitialized]
             nl_msg_end_nested(mask, mask_offset);       \
                              ^
../lib/odp-util.c:5176:28: note: 'mask_offset' was declared here
         size_t key_offset, mask_offset;            \
                            ^
../lib/odp-util.c:5452:5: note: in expansion of macro 'SCAN_BEGIN_NESTED'
     SCAN_BEGIN_NESTED("tunnel(", OVS_KEY_ATTR_TUNNEL) {
     ^
cc1: all warnings being treated as errors





>     #3 0xf714e568 in dp_netdev_free ../lib/dpif-netdev.c:1614
>     #4 0xf714f1ce in dp_netdev_unref ../lib/dpif-netdev.c:1650
>     #5 0xf714f2a5 in dp_netdev_unref ../lib/dpif-netdev.c:1645
>     #6 0xf714f2a5 in dpif_netdev_close ../lib/dpif-netdev.c:1661
>     #7 0xf7170832 in dpif_uninit ../lib/dpif.c:1690
>     #8 0xf71709b3 in dpif_close ../lib/dpif.c:456
>     #9 0xf70147e2 in close_dpif_backer ../ofproto/ofproto-dpif.c:683
>     #10 0xf7024d05 in destruct ../ofproto/ofproto-dpif.c:1614
>     #11 0xf6ff9499 in ofproto_destroy ../ofproto/ofproto.c:1663
>     #12 0xf6f9acb0 in bridge_destroy ../vswitchd/bridge.c:3298
>     #13 0xf6fb399b in bridge_exit ../vswitchd/bridge.c:507
>     #14 0xf6f89653 in main ../vswitchd/ovs-vswitchd.c:141
>     #15 0xf61c3e80 in __libc_start_main
> (/lib/i386-linux-gnu/libc.so.6+0x18e80)
>     #16 0xf6f8f245
> (/home/blp/nicira/ovs/_build/vswitchd/ovs-vswitchd+0x67245)
>
> AddressSanitizer can not provide additional info.
> SUMMARY: AddressSanitizer: SEGV
> (/lib/i386-linux-gnu/libpthread.so.0+0x767c) in __GI___pthread_timedjoin_ex
> ==17824==ABORTING
>


More information about the dev mailing list