From 3cb3620acfd32ca402353e209e08ffbc3b420de1 Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Thu, 3 Feb 2011 12:15:41 +0100 Subject: vacuum: check lmaster against num_nodes instead of vnn_map->size When lmaster is bigger than the biggest recorded node number, then exit the traverse with error. (This used to be ctdb commit 3930c7796b72bbf275bbca8aaeceec3e705a964b) --- ctdb/server/ctdb_vacuum.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/ctdb/server/ctdb_vacuum.c b/ctdb/server/ctdb_vacuum.c index aa7908fe0e..e5b3cd5e22 100644 --- a/ctdb/server/ctdb_vacuum.c +++ b/ctdb/server/ctdb_vacuum.c @@ -109,8 +109,14 @@ static int vacuum_traverse(struct tdb_context *tdb, TDB_DATA key, TDB_DATA data, size_t old_size; lmaster = ctdb_lmaster(ctdb, &key); - if (lmaster >= ctdb->vnn_map->size) { - return 0; + if (lmaster >= ctdb->num_nodes) { + DEBUG(DEBUG_CRIT, (__location__ + " lmaster[%u] >= ctdb->num_nodes[%u] for key" + " with hash[%u]!\n", + (unsigned)lmaster, + (unsigned)ctdb->num_nodes, + (unsigned)ctdb_hash(&key))); + return -1; } if (data.dsize != sizeof(struct ctdb_ltdb_header)) { -- cgit