summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@inktank.com>2013-06-13 15:57:57 -0700
committerSage Weil <sage@inktank.com>2013-06-13 15:57:57 -0700
commit6e73d999afa4189789c4b93e47ecda3c65494c98 (patch)
tree81e5963d5d656263a84ce09d90f216b937fd3b13
parent68a91995ba4ae7a0dccbe73b9c007e71d86b0d9d (diff)
downloadceph-6e73d999afa4189789c4b93e47ecda3c65494c98.tar.gz
osdc/Objecter: ping osds for which we have pending commands
As with ops and linger_ops, this ensures we detect connection resets. Signed-off-by: Sage Weil <sage@inktank.com>
-rw-r--r--src/osdc/Objecter.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/osdc/Objecter.cc b/src/osdc/Objecter.cc
index 685d8c5fe5e..3674d361f14 100644
--- a/src/osdc/Objecter.cc
+++ b/src/osdc/Objecter.cc
@@ -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());