]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
OSD: add recovery_wq suicide timeout
authorSamuel Just <sjust@redhat.com>
Wed, 6 May 2015 17:50:19 +0000 (10:50 -0700)
committerAbhishek Lekshmanan <abhishek.lekshmanan@ril.com>
Wed, 15 Jul 2015 16:33:24 +0000 (22:03 +0530)
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

src/common/config_opts.h
src/osd/OSD.cc
src/osd/OSD.h

index 06be0f55038a2dbebaa1b15b9ebca4b8795c3248..5602a1beeff68b8c9b87af8c7ca7ee8416179ced 100644 (file)
@@ -566,6 +566,7 @@ OPTION(osd_backfill_scan_max, OPT_INT, 512)
 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)
index 3a58b9196bd0d7f9edcd6d189d9f2dbb0466aa30..82b356b5f87417f1e66dd7fa5880ab98516b6dfd 100644 (file)
@@ -1567,7 +1567,11 @@ OSD::OSD(CephContext *cct_, ObjectStore *store_,
   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),
index ac7f2ce213ea378609c80ff1da8f7a9fe3efe204..9bad7e2a3725db0de337a84f48c538ceb1bce26b 100644 (file)
@@ -1998,8 +1998,8 @@ protected:
 
   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();