see_also:
- osd_scrub_retry_delay
with_legacy: false
+- name: osd_scrub_retry_trimming
+ type: int
+ level: advanced
+ desc: Period (in seconds) before retrying to scrub a previously snap-trimming PG
+ long_desc: Minimum delay after a failed attempt to scrub a PG that was performing
+ snap trimming and not available for scrubbing.
+ default: 10
+ min: 1
+ see_also:
+ - osd_scrub_retry_delay
+ with_legacy: false
- name: osd_scrub_disable_reservation_queuing
type: bool
level: advanced
// i.e. some time before setting 'snaptrim'.
dout(10) << __func__ << ": cannot scrub while snap-trimming" << dendl;
requeue_penalized(
- s_or_d, delay_both_targets_t::yes, delay_cause_t::pg_state, clock_now);
+ s_or_d, delay_both_targets_t::yes, delay_cause_t::snap_trimming,
+ clock_now);
return schedule_result_t::target_specific_failure;
}
case delay_cause_t::pg_state:
delay = seconds(cct->_conf.get_val<int64_t>("osd_scrub_retry_pg_state"));
break;
+ case delay_cause_t::snap_trimming:
+ delay = seconds(cct->_conf.get_val<int64_t>("osd_scrub_retry_trimming"));
+ break;
case delay_cause_t::local_resources:
default:
// for all other possible delay causes: use the default delay
none, ///< scrub attempt was successful
replicas, ///< failed to reserve replicas
flags, ///< noscrub or nodeep-scrub
- pg_state, ///< e.g. snap-trimming
+ pg_state, ///< not active+clean
+ snap_trimming, ///< snap-trimming is in progress
restricted_time, ///< time restrictions or busy CPU
local_resources, ///< too many scrubbing PGs
aborted, ///< scrub was aborted w/ unspecified reason
case replicas: desc = "replicas"; break;
case flags: desc = "noscrub"; break;
case pg_state: desc = "pg-state"; break;
+ case snap_trimming: desc = "snap-trim"; break;
case restricted_time: desc = "time/load"; break;
case local_resources: desc = "local-cnt"; break;
case aborted: desc = "aborted"; break;