A common error scenario with OVN is to attempt to use ovn-nbctl when
the OVN databases have not been created in ovsdb-server:
1. ovn-nbctl sends "get_schema" request for OVN db to ovsdb-server.
2. ovsdb-server fails to find requested db, sends error response
to ovn-nbctl.
3. ovn-nbctl receives the error response in ovsdb_idl_run(), but
takes no specific action.
4. ovn-nbctl hangs forever in IDL_S_SCHEMA_REQUESTED state (assuming
a timeout wasn't requested on the command line).
Add a log message to inform the user of this situation.
Signed-off-by: Lance Richardson <[email protected]>
---
lib/ovsdb-idl.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/lib/ovsdb-idl.c b/lib/ovsdb-idl.c
index 7e84138..4cb1c81 100644
--- a/lib/ovsdb-idl.c
+++ b/lib/ovsdb-idl.c
@@ -453,6 +453,14 @@ ovsdb_idl_run(struct ovsdb_idl *idl)
ovsdb_idl_send_monitor_request(idl);
idl->state = IDL_S_MONITOR_REQUESTED;
}
+ } else if (msg->type == JSONRPC_ERROR
+ && idl->state == IDL_S_SCHEMA_REQUESTED
+ && idl->request_id
+ && json_equal(idl->request_id, msg->id)) {
+ json_destroy(idl->request_id);
+ idl->request_id = NULL;
+ VLOG_ERR("%s: requested schema not found",
+ jsonrpc_session_get_name(idl->session));
} else if ((msg->type == JSONRPC_ERROR
|| msg->type == JSONRPC_REPLY)
&& ovsdb_idl_txn_process_reply(idl, msg)) {
--
2.5.0
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev