vtep-ctl: Exit if database connection fails.
authorDaniele Di Proietto <diproiettod@vmware.com>
Thu, 22 Oct 2015 21:27:45 +0000 (14:27 -0700)
committerDaniele Di Proietto <diproiettod@vmware.com>
Thu, 22 Oct 2015 22:38:25 +0000 (15:38 -0700)
Before this commit vtep-ctl hung forever if it didn't manage to reach
the database.

This caused the testcase "ovn -- 3 HVs, 1 VIFs/HV, 1 GW, 1 LS" to hang
occasionally, because ovsdb-server could be killed before ovs-vtep
called vtep-ctl.

This mimics the behaviour of ovs-vsctl, ovn-nbctl and ovn-sbctl.

Signed-off-by: Daniele Di Proietto <diproiettod@vmware.com>
Acked-by: Justin Pettit <jpettit@nicira.com>
vtep/vtep-ctl.c

index c3789d2..604d19d 100644 (file)
@@ -135,6 +135,11 @@ main(int argc, char *argv[])
     seqno = ovsdb_idl_get_seqno(idl);
     for (;;) {
         ovsdb_idl_run(idl);
+        if (!ovsdb_idl_is_alive(idl)) {
+            int retval = ovsdb_idl_get_last_error(idl);
+            ctl_fatal("%s: database connection failed (%s)",
+                        db, ovs_retval_to_string(retval));
+        }
 
         if (seqno != ovsdb_idl_get_seqno(idl)) {
             seqno = ovsdb_idl_get_seqno(idl);