summaryrefslogtreecommitdiffstats
path: root/ctdb
diff options
context:
space:
mode:
authorMichael Adam <obnox@samba.org>2014-02-14 17:58:01 +0100
committerAmitay Isaacs <amitay@gmail.com>2014-03-06 11:31:11 +1100
commitc88fd19714b98769887dbff59d8c1d077cf351d5 (patch)
tree53f3e4138793c9bfd4677d0488f10c4c350f0471 /ctdb
parent5d5907c7cf09567e73092578917624c8789c7471 (diff)
downloadsamba-c88fd19714b98769887dbff59d8c1d077cf351d5.tar.gz
samba-c88fd19714b98769887dbff59d8c1d077cf351d5.tar.xz
samba-c88fd19714b98769887dbff59d8c1d077cf351d5.zip
ctdb-vacuum: add consistency check for counts to ctdb_vacuum_db_fast()
Signed-off-by: Michael Adam <obnox@samba.org> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
Diffstat (limited to 'ctdb')
-rw-r--r--ctdb/server/ctdb_vacuum.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/ctdb/server/ctdb_vacuum.c b/ctdb/server/ctdb_vacuum.c
index a3396f21932..6adfa5870ae 100644
--- a/ctdb/server/ctdb_vacuum.c
+++ b/ctdb/server/ctdb_vacuum.c
@@ -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__