diff options
author | Sage Weil <sage@inktank.com> | 2013-06-13 15:57:57 -0700 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-06-13 15:57:57 -0700 |
commit | 6e73d999afa4189789c4b93e47ecda3c65494c98 (patch) | |
tree | 81e5963d5d656263a84ce09d90f216b937fd3b13 | |
parent | 68a91995ba4ae7a0dccbe73b9c007e71d86b0d9d (diff) | |
download | ceph-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.cc | 11 |
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()); |