OPTION(osd_debug_drop_pg_create_duration, OPT_INT, 1)
OPTION(osd_debug_drop_op_probability, OPT_DOUBLE, 0) // probability of stalling/dropping a client op
OPTION(osd_debug_op_order, OPT_BOOL, false)
+OPTION(osd_debug_scrub_chance_rewrite_digest, OPT_U64, 0)
OPTION(osd_debug_verify_snaps_on_info, OPT_BOOL, false)
OPTION(osd_debug_verify_stray_on_activate, OPT_BOOL, false)
OPTION(osd_debug_skip_full_check_in_backfill_reservation, OPT_BOOL, false)
}
if (okseed &&
auth_object.digest_present && auth_object.omap_digest_present &&
- (!auth_oi.is_data_digest() || !auth_oi.is_omap_digest())) {
+ (!auth_oi.is_data_digest() || !auth_oi.is_omap_digest() ||
+ (g_conf->osd_debug_scrub_chance_rewrite_digest &&
+ (((unsigned)rand() % 100) >
+ g_conf->osd_debug_scrub_chance_rewrite_digest)))) {
if (!cur_inconsistent.empty() || !cur_missing.empty()) {
dout(20) << __func__ << " not updating oi digest on "
<< *k << " since it is inconsistent" << dendl;