From 46e819ede8e00f4449bab4a2b8a6e1dce9a41889 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 23 Jul 2012 14:41:17 -0700 Subject: [PATCH] objecter: fix mon command resends The monitor session is lossy. Send these when the op is initiated, or when we reconnect. The timeout/cutoff was preventing ops from getting resent if there was an ill-timed mon reset. Backport: testing, stable/argonaut Signed-off-by: Sage Weil --- src/osdc/Objecter.cc | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/src/osdc/Objecter.cc b/src/osdc/Objecter.cc index 829f20326dfc3..a8c34e5bbfa51 100644 --- a/src/osdc/Objecter.cc +++ b/src/osdc/Objecter.cc @@ -843,29 +843,21 @@ void Objecter::tick() void Objecter::resend_mon_ops() { - utime_t cutoff = ceph_clock_now(cct); - cutoff -= cct->_conf->objecter_mon_retry_interval; - + ldout(cct, 10) << "resend_mon_ops" << dendl; for (map::iterator p = poolstat_ops.begin(); p!=poolstat_ops.end(); ++p) { - if (p->second->last_submit < cutoff) { - poolstat_submit(p->second); - logger->inc(l_osdc_poolstat_resend); - } + poolstat_submit(p->second); + logger->inc(l_osdc_poolstat_resend); } for (map::iterator p = statfs_ops.begin(); p!=statfs_ops.end(); ++p) { - if (p->second->last_submit < cutoff) { - fs_stats_submit(p->second); - logger->inc(l_osdc_statfs_resend); - } + fs_stats_submit(p->second); + logger->inc(l_osdc_statfs_resend); } for (map::iterator p = pool_ops.begin(); p!=pool_ops.end(); ++p) { - if (p->second->last_submit < cutoff) { - pool_op_submit(p->second); - logger->inc(l_osdc_poolop_resend); - } + pool_op_submit(p->second); + logger->inc(l_osdc_poolop_resend); } } @@ -1918,6 +1910,7 @@ void Objecter::_sg_read_finish(vector& extents, vector void Objecter::ms_handle_connect(Connection *con) { + ldout(cct, 10) << "ms_handle_connect " << con << dendl; if (con->get_peer_type() == CEPH_ENTITY_TYPE_MON) resend_mon_ops(); } -- 2.39.5