[ovs-dev] [Replication SM 1/7] ovsdb: Properly handle error returned from from reset_database()
Andy Zhou
azhou at ovn.org
Thu Aug 25 00:07:21 UTC 2016
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 at ovn.org>
---
ovsdb/replication.c | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/ovsdb/replication.c b/ovsdb/replication.c
index de6eec1..6681a20 100644
--- a/ovsdb/replication.c
+++ b/ovsdb/replication.c
@@ -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"
@@ -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);
@@ -88,12 +91,14 @@ replication_run(struct shash *all_dbs)
/* Reset local databases. */
if (reset_dbs) {
struct ovsdb_error *error = reset_databases(all_dbs);
- if (!error) {
+ 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);
+ } else {
reset_dbs = false;
}
- /* In case of success reseting the databases,
- * return in order to notify monitors. */
- return;
}
/* Open JSON-RPC. */
--
1.9.1
More information about the dev
mailing list