ctdb-recovery: Move recovery lock latency updating to handler
authorMartin Schwenke <martin@meltin.net>
Mon, 22 Feb 2016 02:29:22 +0000 (13:29 +1100)
committerAmitay Isaacs <amitay@samba.org>
Thu, 28 Apr 2016 07:39:17 +0000 (09:39 +0200)
The cluster mutex code already passes the latency and expects the
handler to update the statistics.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
ctdb/server/ctdb_recoverd.c

index 22eb8caf211cf5a3e4be9a7834e6fe3b862eb6f4..a25ad2d5fd1d59eeeb7ae4201001b298408351b8 100644 (file)
@@ -1558,6 +1558,8 @@ static void hold_reclock_handler(struct ctdb_context *ctdb,
        switch (status) {
        case '0':
                ctdb->recovery_lock_handle = h;
+               ctdb_ctrl_report_recd_lock_latency(ctdb, CONTROL_TIMEOUT(),
+                                                  latency);
                break;
 
        case '1':
@@ -2069,7 +2071,6 @@ static int do_recovery(struct ctdb_recoverd *rec,
        struct ctdb_context *ctdb = rec->ctdb;
        int i, ret;
        struct ctdb_dbid_map_old *dbmap;
-       struct timeval start_time;
        bool self_ban;
        bool par_recovery;
 
@@ -2108,7 +2109,6 @@ static int do_recovery(struct ctdb_recoverd *rec,
                if (ctdb_recovery_have_lock(ctdb)) {
                        DEBUG(DEBUG_NOTICE, ("Already holding recovery lock\n"));
                } else {
-                       start_time = timeval_current();
                        DEBUG(DEBUG_NOTICE, ("Attempting to take recovery lock (%s)\n",
                                             ctdb->recovery_lock_file));
                        if (!ctdb_recovery_lock(ctdb)) {
@@ -2128,9 +2128,6 @@ static int do_recovery(struct ctdb_recoverd *rec,
                                ctdb_ban_node(rec, pnn, ctdb->tunable.recovery_ban_period);
                                goto fail;
                        }
-                       ctdb_ctrl_report_recd_lock_latency(ctdb,
-                                                          CONTROL_TIMEOUT(),
-                                                          timeval_elapsed(&start_time));
                        DEBUG(DEBUG_NOTICE,
                              ("Recovery lock taken successfully by recovery daemon\n"));
                }