[ovs-git] Open vSwitch: connmgr: Fix attempt to take mutex recursively when exiting fail-open. (branch-2.0)

dev at openvswitch.org dev at openvswitch.org
Mon Dec 16 19:02:09 UTC 2013


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Open vSwitch".

The branch, branch-2.0 has been updated
       via  b6061a4aa47f8057cc2f166f62f63fd2dd294af6 (commit)
      from  f9b9c7a68dc4c5eefb100b8b4d0e024b5ce87f2a (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit b6061a4aa47f8057cc2f166f62f63fd2dd294af6
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=b6061a4aa47f8057cc2f166f62f63fd2dd294af6
Author: Ben Pfaff <blp at nicira.com>
		
connmgr: Fix attempt to take mutex recursively when exiting fail-open.
		
If one configured a controller which does not exist, waited for the switch
to enter fail-open mode, and then deleted the controller, then
ofproto_set_controllers() would take ofproto_mutex and call
update_fail_open(), which would call fail_open_destroy(), which would call
fail_open_recover(), which would call ofproto_delete_flow(), which requires
ofproto_mutex not to be held since it eventually try to take it.  This
caused OVS to abort.

This fixes the problem by releasing ofproto_mutex earlier, since nothing
seems to require it being held so long (a comment in
connmgr_set_controllers() says that this is likely to be the case).

Better annotations would have found this problem at compile time.  A later
patch adds them.

Reported-by: ZhengLingyun <konghuarukhr at 163.com>
Signed-off-by: Ben Pfaff <blp at nicira.com>
Acked-by: Ethan Jackson <ethan at nicira.com>


-----------------------------------------------------------------------

Summary of changes:
 ofproto/connmgr.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)


hooks/post-receive
-- 
Open vSwitch



More information about the git mailing list