]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osdc/Objecter: ping osds for which we have pending commands
authorSage Weil <sage@inktank.com>
Thu, 13 Jun 2013 22:57:57 +0000 (15:57 -0700)
committerSage Weil <sage@inktank.com>
Thu, 13 Jun 2013 22:57:57 +0000 (15:57 -0700)
As with ops and linger_ops, this ensures we detect connection resets.

Signed-off-by: Sage Weil <sage@inktank.com>
src/osdc/Objecter.cc

index 685d8c5fe5e1f0370530336b7b57f04ca5ed61bb..3674d361f141298ac5b4e3f3b6e56012cd9fd66c 100644 (file)
@@ -1071,6 +1071,17 @@ void Objecter::tick()
       ldout(cct, 10) << " lingering tid " << p->first << " does not have session" << dendl;
     }
   }
+  for (map<uint64_t,CommandOp*>::iterator p = command_ops.begin();
+       p != command_ops.end();
+       ++p) {
+    CommandOp *op = p->second;
+    if (op->session) {
+      ldout(cct, 10) << " pinging osd that serves command tid " << p->first << " (osd." << op->session->osd << ")" << dendl;
+      toping.insert(op->session);
+    } else {
+      ldout(cct, 10) << " command tid " << p->first << " does not have session" << dendl;
+    }
+  }
   logger->set(l_osdc_op_laggy, laggy_ops);
   logger->set(l_osdc_osd_laggy, toping.size());