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

dev at openvswitch.org dev at openvswitch.org
Thu Apr 11 01:14:28 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, master has been updated
       via  63ff04e82623e76521add85287b2ac0e1829bcfe (commit)
       via  0ffe45370d7fd3f78915b891557bd3e69eea2d05 (commit)
       via  b421d2af0ab5049a91fa5ba4a423dd4b7d30b0d8 (commit)
       via  c02cf07b18bfb46a2fb5571c8380ca4972c3bb77 (commit)
       via  808311f6d98259db3f38f3a99d07093784ffdb2b (commit)
      from  9872172a0a87c6e8300813de613b9267a73f0547 (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 63ff04e82623e76521add85287b2ac0e1829bcfe
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=63ff04e82623e76521add85287b2ac0e1829bcfe
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 0ffe45370d7fd3f78915b891557bd3e69eea2d05
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=0ffe45370d7fd3f78915b891557bd3e69eea2d05
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 b421d2af0ab5049a91fa5ba4a423dd4b7d30b0d8
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=b421d2af0ab5049a91fa5ba4a423dd4b7d30b0d8
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 c02cf07b18bfb46a2fb5571c8380ca4972c3bb77
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=c02cf07b18bfb46a2fb5571c8380ca4972c3bb77
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 808311f6d98259db3f38f3a99d07093784ffdb2b
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=808311f6d98259db3f38f3a99d07093784ffdb2b
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