[ovs-git] Open vSwitch: jsonrpc-server: Disconnect connections that queue too much data. (master)

dev at openvswitch.org dev at openvswitch.org
Mon Apr 1 20:24:25 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  60533a405b2eb77214b767767fe143c8645f82d5 (commit)
       via  0ea7bec76d804a2c4efccd3dbdaa3e30cf536a5c (commit)
       via  1600fa6853872e16130366351a2c14f6fa8b547c (commit)
      from  8073dd318b5a08fa447392f100d62b3bf54388a7 (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 60533a405b2eb77214b767767fe143c8645f82d5
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=60533a405b2eb77214b767767fe143c8645f82d5
Author: Ben Pfaff <blp at nicira.com>
		
jsonrpc-server: Disconnect connections that queue too much data.
		
Consider this situation:

    * OVSDB client A executes transactions very quickly for a long time.

    * OVSDB client B monitors the tables that A modifies, but (either
      because B is connected over a slow network, or because B is slow to
      process updates) cannot keep up.

In this situation, the data that ovsdb-server has queued to send B grows
without bound and eventually ovsdb-server runs out of memory.  This commit
avoids the problem by noticing that more data is queued to B than necessary
to express the whole contents of the database and dropping the connection
to B.  When B reconnects later, it can then fetch the contents of the
database using less data than was previously queued to it.

(This is not entirely hypothetical.  We have seen this behavior in
intentional stress tests.)

Bug #15637.
Reported-by: Jeff Merrick <jmerrick at vmware.com>
Signed-off-by: Ben Pfaff <blp at nicira.com>


commit 0ea7bec76d804a2c4efccd3dbdaa3e30cf536a5c
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=0ea7bec76d804a2c4efccd3dbdaa3e30cf536a5c
Author: Ben Pfaff <blp at nicira.com>
		
ovsdb-data: New functions for predicting serialized length of data.
		
These will be used for the first time in an upcoming commit.

Signed-off-by: Ben Pfaff <blp at nicira.com>


commit 1600fa6853872e16130366351a2c14f6fa8b547c
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=1600fa6853872e16130366351a2c14f6fa8b547c
Author: Ben Pfaff <blp at nicira.com>
		
json: New function json_serialized_length().
		
This will be used for the first time in an upcoming commit.

Signed-off-by: Ben Pfaff <blp at nicira.com>


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

Summary of changes:
 lib/json.c             |  115 +++++++++++++++++++++++++++++++++++++++++++++++-
 lib/json.h             |    4 +-
 lib/ovsdb-data.c       |   93 ++++++++++++++++++++++++++++++++++++++-
 lib/ovsdb-data.h       |    6 ++-
 ovsdb/jsonrpc-server.c |  108 ++++++++++++++++++++++++++++++++++++++++++++-
 tests/test-json.c      |    3 +-
 tests/test-ovsdb.c     |   14 +++++-
 7 files changed, 334 insertions(+), 9 deletions(-)


hooks/post-receive
-- 
Open vSwitch



More information about the git mailing list