]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
OSD: add scrub_wq suicide timeout
authorSamuel Just <sjust@redhat.com>
Wed, 6 May 2015 17:52:40 +0000 (10:52 -0700)
committerAbhishek Lekshmanan <abhishek.lekshmanan@ril.com>
Wed, 15 Jul 2015 16:37:09 +0000 (22:07 +0530)
Signed-off-by: Samuel Just <sjust@redhat.com>
(cherry picked from commit 547a7041edc833f3cc8e04d388574809e30a8af6)

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

index 5e5f260ec29c9e64135daed8fde8c9d992275ffb..b82f7e756887b7c5c8e8c0bf3287361900323abc 100644 (file)
@@ -571,6 +571,7 @@ OPTION(osd_snap_trim_thread_timeout, OPT_INT, 60*60*1)
 OPTION(osd_snap_trim_thread_suicide_timeout, OPT_INT, 60*60*10)
 OPTION(osd_snap_trim_sleep, OPT_FLOAT, 0)
 OPTION(osd_scrub_thread_timeout, OPT_INT, 60)
+OPTION(osd_scrub_thread_suicide_timeout, OPT_INT, 60)
 OPTION(osd_scrub_finalize_thread_timeout, OPT_INT, 60*10)
 OPTION(osd_scrub_invalid_stats, OPT_BOOL, true)
 OPTION(osd_remove_thread_timeout, OPT_INT, 60*60)
index a77f49e3f0f4f0d49fbae5579fd683cdc8f1a6b7..01180aef7861346c344bfcf04f53525bbd82709d 100644 (file)
@@ -1578,8 +1578,16 @@ OSD::OSD(CephContext *cct_, ObjectStore *store_,
     cct->_conf->osd_snap_trim_thread_timeout,
     cct->_conf->osd_snap_trim_thread_suicide_timeout,
     &disk_tp),
-  scrub_wq(this, cct->_conf->osd_scrub_thread_timeout, &disk_tp),
-  rep_scrub_wq(this, cct->_conf->osd_scrub_thread_timeout, &disk_tp),
+  scrub_wq(
+    this,
+    cct->_conf->osd_scrub_thread_timeout,
+    cct->_conf->osd_scrub_thread_suicide_timeout,
+    &disk_tp),
+  rep_scrub_wq(
+    this,
+    cct->_conf->osd_scrub_thread_timeout,
+    cct->_conf->osd_scrub_thread_suicide_timeout,
+    &disk_tp),
   remove_wq(store, cct->_conf->osd_remove_thread_timeout, &disk_tp),
   service(this)
 {
index 2e111a1cd65facc3c1d0c5cbdf54f97b5e1f55b2..a6907351bed50878bd1ffb9fad4e403b51a660c0 100644 (file)
@@ -2102,8 +2102,8 @@ protected:
 
   struct ScrubWQ : public ThreadPool::WorkQueue<PG> {
     OSD *osd;
-    ScrubWQ(OSD *o, time_t ti, ThreadPool *tp)
-      : ThreadPool::WorkQueue<PG>("OSD::ScrubWQ", ti, 0, tp), osd(o) {}
+    ScrubWQ(OSD *o, time_t ti, time_t si, ThreadPool *tp)
+      : ThreadPool::WorkQueue<PG>("OSD::ScrubWQ", ti, si, tp), osd(o) {}
 
     bool _empty() {
       return osd->scrub_queue.empty();
@@ -2149,8 +2149,8 @@ protected:
     list<MOSDRepScrub*> rep_scrub_queue;
 
   public:
-    RepScrubWQ(OSD *o, time_t ti, ThreadPool *tp)
-      : ThreadPool::WorkQueue<MOSDRepScrub>("OSD::RepScrubWQ", ti, 0, tp), osd(o) {}
+    RepScrubWQ(OSD *o, time_t ti, time_t si, ThreadPool *tp)
+      : ThreadPool::WorkQueue<MOSDRepScrub>("OSD::RepScrubWQ", ti, si, tp), osd(o) {}
 
     bool _empty() {
       return rep_scrub_queue.empty();