Signed-off-by: Samuel Just <sjust@redhat.com>
(cherry picked from commit
85311b656852af75bfbbc6699f92fc6aa233c316)
Conflicts:
src/common/config_opts.h
place OPTION(osd_command_thread_suicide_timeout, ...)
directly after OPTION(osd_command_thread_timeout, ...)
OPTION(osd_backfill_scan_max, OPT_INT, 512)
OPTION(osd_op_thread_timeout, OPT_INT, 15)
OPTION(osd_recovery_thread_timeout, OPT_INT, 30)
+OPTION(osd_recovery_thread_suicide_timeout, OPT_INT, 300)
OPTION(osd_snap_trim_thread_timeout, OPT_INT, 60*60*1)
OPTION(osd_snap_trim_sleep, OPT_FLOAT, 0)
OPTION(osd_scrub_thread_timeout, OPT_INT, 60)
cct->_conf->osd_command_thread_suicide_timeout,
&command_tp),
recovery_ops_active(0),
- recovery_wq(this, cct->_conf->osd_recovery_thread_timeout, &recovery_tp),
+ recovery_wq(
+ this,
+ cct->_conf->osd_recovery_thread_timeout,
+ cct->_conf->osd_recovery_thread_suicide_timeout,
+ &recovery_tp),
replay_queue_lock("OSD::replay_queue_lock"),
snap_trim_wq(this, cct->_conf->osd_snap_trim_thread_timeout, &disk_tp),
scrub_wq(this, cct->_conf->osd_scrub_thread_timeout, &disk_tp),
struct RecoveryWQ : public ThreadPool::WorkQueue<PG> {
OSD *osd;
- RecoveryWQ(OSD *o, time_t ti, ThreadPool *tp)
- : ThreadPool::WorkQueue<PG>("OSD::RecoveryWQ", ti, ti*10, tp), osd(o) {}
+ RecoveryWQ(OSD *o, time_t ti, time_t si, ThreadPool *tp)
+ : ThreadPool::WorkQueue<PG>("OSD::RecoveryWQ", ti, si, tp), osd(o) {}
bool _empty() {
return osd->recovery_queue.empty();