]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
OSD: add command_wq suicide timeout
authorSamuel Just <sjust@redhat.com>
Wed, 6 May 2015 17:49:00 +0000 (10:49 -0700)
committerNathan Cutler <ncutler@suse.com>
Sat, 5 Sep 2015 12:28:37 +0000 (14:28 +0200)
Signed-off-by: Samuel Just <sjust@redhat.com>
(cherry picked from commit df4e5de819c30003cfbe50a071c49039cf534419)

Conflicts:
src/common/config_opts.h
           place OPTION(osd_command_thread_suicide_timeout, ...)
           directly after OPTION(osd_command_thread_timeout, ...)

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

index 527b2806e33c28e5c85c4a31f7dd499a4749e4be..5ca307102d5a92eece2ef517b0ade1000019376f 100644 (file)
@@ -484,6 +484,7 @@ 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)
 OPTION(osd_command_thread_timeout, OPT_INT, 10*60)
+OPTION(osd_command_thread_suicide_timeout, OPT_INT, 15*60)
 OPTION(osd_age, OPT_FLOAT, .8)
 OPTION(osd_age_time, OPT_INT, 0)
 OPTION(osd_heartbeat_addr, OPT_ADDR, entity_addr_t())
index d2c0a341ab8263c064b485b7758de229431eba06..6fbc7d89997bad099eb93e906d3fa77c94a1abe9 100644 (file)
@@ -953,7 +953,11 @@ OSD::OSD(CephContext *cct_, ObjectStore *store_,
   pg_stat_queue_lock("OSD::pg_stat_queue_lock"),
   osd_stat_updated(false),
   pg_stat_tid(0), pg_stat_tid_flushed(0),
-  command_wq(this, cct->_conf->osd_command_thread_timeout, &command_tp),
+  command_wq(
+    this,
+    cct->_conf->osd_command_thread_timeout,
+    cct->_conf->osd_command_thread_suicide_timeout,
+    &command_tp),
   recovery_ops_active(0),
   recovery_wq(this, cct->_conf->osd_recovery_thread_timeout, &recovery_tp),
   replay_queue_lock("OSD::replay_queue_lock"),
index daa18ca5e0c617644e435f8c077bd847177b2c41..26474e4cd09bde2cc511edf04301beb33e3b7326 100644 (file)
@@ -1599,8 +1599,8 @@ protected:
   list<Command*> command_queue;
   struct CommandWQ : public ThreadPool::WorkQueue<Command> {
     OSD *osd;
-    CommandWQ(OSD *o, time_t ti, ThreadPool *tp)
-      : ThreadPool::WorkQueue<Command>("OSD::CommandWQ", ti, 0, tp), osd(o) {}
+    CommandWQ(OSD *o, time_t ti, time_t si, ThreadPool *tp)
+      : ThreadPool::WorkQueue<Command>("OSD::CommandWQ", ti, si, tp), osd(o) {}
 
     bool _empty() {
       return osd->command_queue.empty();