[ovs-git] Open vSwitch: bridge: Only complete daemonization after db commits initial config. (branch-1.10)

dev at openvswitch.org dev at openvswitch.org
Thu Apr 11 01:17:03 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-1.10 has been updated
       via  783cd86f3c37b1b63280332f237115a90d1c773a (commit)
       via  901252b48087862a755a04d2e71519194e1e7548 (commit)
       via  03e7cc8ff8158dae94fd1a5398697f5ee3439220 (commit)
       via  1807f295a8ba8fdc4b172188cf3b25245f81c1fd (commit)
       via  b297dde62ea9e6111ee1c237d691267a690aa838 (commit)
      from  44c2145eed876cf74c5434d60eeb37ccf37cda21 (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 783cd86f3c37b1b63280332f237115a90d1c773a
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=783cd86f3c37b1b63280332f237115a90d1c773a
Author: Ben Pfaff <blp at nicira.com>
		
bridge: Only complete daemonization after db commits initial config.
		
An earlier commit changed the Open vSwitch startup scripts so that they
connect to remote managers only after ovs-vswitchd does its initial
configuration, as signaled by ovs-vswitchd detaching from its parent
process.  However, a race window remains, because ovs-vswitchd detaching
does not mean that the database server has received and committed the
transaction, only that ovs-vswitchd has sent it.  This commit fixes that
race window, by changing ovs-vswitchd to complete detaching only after
the database server acknowledges the transaction.

It is still possible for unusual events to cause ovs-vswitchd to detach
before ephemeral columns are filled in.  There is always a slim possibility
that the transaction will fail or that some other client has added new
bridges, ports, etc. while ovs-vswitchd was configuring using an old
configuration.  The latter race is inherent to the design of the system
and cannot be avoided without radical changes.

Signed-off-by: Ben Pfaff <blp at nicira.com>
Acked-by: Ansis Atteka <aatteka at nicira.com>
Bug #15983.


commit 901252b48087862a755a04d2e71519194e1e7548
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=901252b48087862a755a04d2e71519194e1e7548
Author: Ben Pfaff <blp at nicira.com>
		
ovs-ctl: Connect to remote OVSDB managers only after ovs-vswitchd starts.
		
Until now, ovs-ctl has started ovsdb-server with the full set of remote
managers configured.  This means that ovsdb-server immediately connects to
these managers, before ovs-vswitchd even starts.  Because the Open vSwitch
schema has several ephemeral columns, there will be considerable startup
churn in the database.   For example, ovs-vswitchd will initially fill in
the datapath-id and ofport columns as it starts and sets up the initial
configuration.  This churn wastes bandwidth to the remote managers and has
potential for confusing them.

This commit reduces the churn by changing ovs-ctl so that ovsdb-server
connects to the remote managers only after ovs-vswitchd has finished its
initial configuration.  This means that remote managers will initially
see a filled-in database, not one that has its ephemeral columns empty.

This commit does not mean that managers can ignore the possibility that
some columns have not yet been filled in.  For example, some columns will
still be briefly blank after a new bridge or a new port is added at
runtime, because adding a bridge or port occurs in one transaction (made by
the client adding the port, e.g. ovs-vsctl) and filling in those columns
happens in a different transaction (made by ovs-vswitchd).  But this commit
does reduce the quantity of empty columns that I would expect a database
client to observe in practice.

Reported-by: Jeff Merrick <jmerrick at vmware.com>
CC: Amar Padmanabhan <amar at nicira.com>
Signed-off-by: Ben Pfaff <blp at nicira.com>
Acked-by: Ansis Atteka <aatteka at nicira.com>
Bug #15983.


commit 03e7cc8ff8158dae94fd1a5398697f5ee3439220
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=03e7cc8ff8158dae94fd1a5398697f5ee3439220
Author: Ben Pfaff <blp at nicira.com>
		
ovsdb-server: Add commands for adding and removing remotes at runtime.
		
This will make it possible, in later commits, to make ovsdb-server connect
to OVS managers only after ovs-vswitchd has completed its initial
configuration.

Signed-off-by: Ben Pfaff <blp at nicira.com>
Acked-by: Ansis Atteka <aatteka at nicira.com>


commit 1807f295a8ba8fdc4b172188cf3b25245f81c1fd
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=1807f295a8ba8fdc4b172188cf3b25245f81c1fd
Author: Ben Pfaff <blp at nicira.com>
		
ovsdb-server: Refactor parsing of remote names to avoid ovs_fatal().
		
The current users of parse_db_column() are content to terminate with a
fatal error if parsing fails.  An upcoming commit requires more flexibility,
so this commit refactors parse_db_column() to make this possible.

Signed-off-by: Ben Pfaff <blp at nicira.com>
Acked-by: Ansis Atteka <aatteka at nicira.com>


commit b297dde62ea9e6111ee1c237d691267a690aa838
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=b297dde62ea9e6111ee1c237d691267a690aa838
Author: Ben Pfaff <blp at nicira.com>
		
sset: New function sset_sort().
		
This will have its first caller in an upcoming commit.

Signed-off-by: Ben Pfaff <blp at nicira.com>
Acked-by: Ansis Atteka <aatteka at nicira.com>


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

Summary of changes:
 AUTHORS                 |    1 +
 lib/sset.c              |   36 +++++++++-
 lib/sset.h              |    4 +-
 ovsdb/ovsdb-server.1.in |   28 +++++++
 ovsdb/ovsdb-server.c    |  191 ++++++++++++++++++++++++++++++++++++++--------
 tests/ovsdb-server.at   |   42 ++++++++++
 utilities/ovs-ctl.in    |   12 +++-
 vswitchd/bridge.c       |   53 +++++++++++--
 8 files changed, 321 insertions(+), 46 deletions(-)


hooks/post-receive
-- 
Open vSwitch



More information about the git mailing list