ctdb-vacuum: add consistency check for counts to ctdb_vacuum_db_fast()
authorMichael Adam <obnox@samba.org>
Fri, 14 Feb 2014 16:58:01 +0000 (17:58 +0100)
committerAmitay Isaacs <amitay@gmail.com>
Thu, 6 Mar 2014 00:31:11 +0000 (11:31 +1100)
Signed-off-by: Michael Adam <obnox@samba.org>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
ctdb/server/ctdb_vacuum.c

index a3396f21932c6d39e90fe76eb9e27739e3a3588f..6adfa5870aebd7930d10ec3558db00ec71fabbb8 100644 (file)
@@ -716,8 +716,23 @@ done:
 static void ctdb_vacuum_db_fast(struct ctdb_db_context *ctdb_db,
                                struct vacuum_data *vdata)
 {
+       uint32_t sum;
+
        trbt_traversearray32(ctdb_db->delete_queue, 1, delete_queue_traverse, vdata);
 
+       sum = vdata->fast_deleted
+           + vdata->fast_skipped
+           + vdata->fast_error
+           + vdata->fast_added_to_delete_list
+           + vdata->fast_added_to_vacuum_fetch_list;
+
+       if (vdata->fast_total != sum) {
+               DEBUG(DEBUG_ERR, (__location__ " Inconsistency in fast vacuum "
+                     "counts for db[%s]: total[%u] != sum[%u]\n",
+                     ctdb_db->db_name, (unsigned)vdata->fast_total,
+                     (unsigned)sum));
+       }
+
        if (vdata->fast_total > 0) {
                DEBUG(DEBUG_INFO,
                      (__location__