From b492c0089de858cfe2d7030eddd046acac6872ab Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Mon, 12 Dec 2016 10:33:13 -0800 Subject: [PATCH] PG::handle_advance_map: add debugging option to verify cached_removed_snaps Signed-off-by: Samuel Just (cherry picked from commit aeb8fef92469831d94f06db457a4ba15b5b0e3c5) --- src/common/config_opts.h | 1 + src/osd/PG.cc | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/src/common/config_opts.h b/src/common/config_opts.h index d74e8fe9dbacf..78e67e2c8fc3c 100644 --- a/src/common/config_opts.h +++ b/src/common/config_opts.h @@ -801,6 +801,7 @@ OPTION(osd_debug_skip_full_check_in_backfill_reservation, OPT_BOOL, false) OPTION(osd_debug_reject_backfill_probability, OPT_DOUBLE, 0) OPTION(osd_debug_inject_copyfrom_error, OPT_BOOL, false) // inject failure during copyfrom completion OPTION(osd_debug_randomize_hobject_sort_order, OPT_BOOL, false) +OPTION(osd_debug_verify_cached_snaps, OPT_BOOL, false) OPTION(osd_enable_op_tracker, OPT_BOOL, true) // enable/disable OSD op tracking OPTION(osd_num_op_tracker_shard, OPT_U32, 32) // The number of shards for holding the ops OPTION(osd_op_history_size, OPT_U32, 20) // Max number of completed ops to track diff --git a/src/osd/PG.cc b/src/osd/PG.cc index 7313bde02dcd2..3e05d92171505 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -5586,6 +5586,19 @@ void PG::handle_advance_map( << dendl; update_osdmap_ref(osdmap); pool.update(osdmap); + if (cct->_conf->osd_debug_verify_cached_snaps) { + interval_set actual_removed_snaps; + const pg_pool_t *pi = osdmap->get_pg_pool(info.pgid.pool()); + assert(pi); + pi->build_removed_snaps(actual_removed_snaps); + if (!(actual_removed_snaps == pool.cached_removed_snaps)) { + derr << __func__ << ": mismatch between the actual removed snaps " + << actual_removed_snaps << " and pool.cached_removed_snaps " + << " pool.cached_removed_snaps " << pool.cached_removed_snaps + << dendl; + } + assert(actual_removed_snaps == pool.cached_removed_snaps); + } AdvMap evt( osdmap, lastmap, newup, up_primary, newacting, acting_primary); -- 2.39.5