Signed-off-by: Samuel Just <sjust@redhat.com>
(cherry picked from commit
85311b656852af75bfbbc6699f92fc6aa233c316)
Conflicts: src/common/config_opts.h
There was a merge conflict due to introduction of `osd_recovery_sleep`
which was introduced in #3829
OPTION(osd_op_thread_timeout, OPT_INT, 15)
OPTION(osd_op_thread_suicide_timeout, OPT_INT, 150)
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)
pg_stat_tid(0), pg_stat_tid_flushed(0),
command_wq(this, cct->_conf->osd_command_thread_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();