Skip to content

Commit

Permalink
ovsdb: Properly handle error returned from from reset_database()
Browse files Browse the repository at this point in the history
Fix a memory leak in case of error. The error object was not properly
disposed.  Since the error to reset DB is not expected, log it and
exit.

Signed-off-by: Andy Zhou <azhou@ovn.org>
Acked-by: Ben Pfaff <blp@ovn.org>
  • Loading branch information
azhou-nicira committed Sep 4, 2016
1 parent 1d68c1f commit 777a9f7
Showing 1 changed file with 9 additions and 5 deletions.
14 changes: 9 additions & 5 deletions ovsdb/replication.c
Expand Up @@ -21,6 +21,7 @@

#include "condition.h"
#include "openvswitch/json.h"
#include "openvswitch/vlog.h"
#include "jsonrpc.h"
#include "ovsdb.h"
#include "ovsdb-error.h"
Expand All @@ -32,6 +33,8 @@
#include "table.h"
#include "transaction.h"

VLOG_DEFINE_THIS_MODULE(replication);

static char *active_ovsdb_server;
static struct jsonrpc *rpc;
static struct sset monitored_tables = SSET_INITIALIZER(&monitored_tables);
Expand Down Expand Up @@ -88,12 +91,13 @@ replication_run(struct shash *all_dbs)
/* Reset local databases. */
if (reset_dbs) {
struct ovsdb_error *error = reset_databases(all_dbs);
if (!error) {
reset_dbs = false;
if (error) {
/* In case reset DB fails, log the error before exiting. */
char *msg = ovsdb_error_to_string(error);
ovsdb_error_destroy(error);
VLOG_FATAL("Failed to reset DB (%s).", msg);
}
/* In case of success reseting the databases,
* return in order to notify monitors. */
return;
reset_dbs = false;
}

/* Open JSON-RPC. */
Expand Down

0 comments on commit 777a9f7

Please sign in to comment.