[ovs-dev] [PATCH/RFC] connmgr: clear ofproto's pointer to connmgr when the latter is destroyed

Ben Pfaff blp at nicira.com
Tue Jun 23 18:39:45 UTC 2015


On Wed, Jun 17, 2015 at 02:22:32PM +0900, Simon Horman wrote:
> As per the testcase included in this patch it has been observed
> that ovs-vswtichd may segfault when deleting a bridge.
> 
> Analysing the output of valgrind and gdb it appears that
> this is caused by the connmgr of a ofproto being accessed
> after the latter has been freed.
> 
> It appears that this is occurring in different threads and
> is the result of the following postponement arrangement in ofproto_destroy();
> 
>     /* We should not postpone this because it involves deleting a listening
>      * socket which we may want to reopen soon. 'connmgr' should not be used
>      * by other threads */
>     connmgr_destroy(p->connmgr);
> 
>     /* Destroying rules is deferred, must have 'ofproto' around for them. */
>     ovsrcu_postpone(ofproto_destroy__, p);

Thanks a lot for the report and the fix.  I found what I think is a
cleaner fix:
        http://openvswitch.org/pipermail/dev/2015-June/056716.html

Will you review it?  Thanks!



More information about the dev mailing list