From a0cc21dc662ebaa424ca1d95e00f98fb7e9a66b0 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 31 Aug 2009 14:38:22 -0700 Subject: [PATCH] monc: resubscribe on monitor connection reset --- src/cfuse.cc | 2 +- src/csyn.cc | 2 +- src/mon/MonClient.cc | 5 +++-- src/mon/MonClient.h | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/cfuse.cc b/src/cfuse.cc index 4a6b0102bf8..31f0657c83c 100644 --- a/src/cfuse.cc +++ b/src/cfuse.cc @@ -76,7 +76,7 @@ int main(int argc, const char **argv, const char *envp[]) { rank.start(); - rank.set_policy(entity_name_t::TYPE_MON, SimpleMessenger::Policy::lossy_fast_fail()); + rank.set_policy(entity_name_t::TYPE_MON, SimpleMessenger::Policy::lossless()); rank.set_policy(entity_name_t::TYPE_MDS, SimpleMessenger::Policy::lossless()); rank.set_policy(entity_name_t::TYPE_OSD, SimpleMessenger::Policy::lossless()); diff --git a/src/csyn.cc b/src/csyn.cc index 1db9ca82bbd..58d61e33df7 100644 --- a/src/csyn.cc +++ b/src/csyn.cc @@ -59,7 +59,7 @@ int main(int argc, const char **argv, char *envp[]) rank.bind(); cout << "starting csyn at " << rank.get_rank_addr() << std::endl; - rank.set_policy(entity_name_t::TYPE_MON, SimpleMessenger::Policy::lossy_fast_fail()); + rank.set_policy(entity_name_t::TYPE_MON, SimpleMessenger::Policy::lossless()); rank.set_policy(entity_name_t::TYPE_MDS, SimpleMessenger::Policy::lossless()); rank.set_policy(entity_name_t::TYPE_OSD, SimpleMessenger::Policy::lossless()); diff --git a/src/mon/MonClient.cc b/src/mon/MonClient.cc index 3d0adc2b3f7..a0abf13f713 100644 --- a/src/mon/MonClient.cc +++ b/src/mon/MonClient.cc @@ -247,6 +247,7 @@ void MonClient::handle_mount_ack(MClientMountAck* m) bufferlist::iterator p = m->monmap_bl.begin(); ::decode(monmap, p); + messenger->_set_myaddr(m->addr); messenger->reset_myname(entity_name_t::CLIENT(m->client)); // finish. @@ -279,9 +280,9 @@ void MonClient::pick_new_mon() } -void MonClient::ms_handle_reset(const entity_addr_t& peer) +void MonClient::ms_handle_remote_reset(const entity_addr_t& peer) { - dout(10) << "ms_handle_reset " << peer << dendl; + dout(10) << "ms_handle_peer_reset " << peer << dendl; pick_new_mon(); renew_subs(); } diff --git a/src/mon/MonClient.h b/src/mon/MonClient.h index 8ed4054c9b8..a7a925f8dc5 100644 --- a/src/mon/MonClient.h +++ b/src/mon/MonClient.h @@ -48,7 +48,7 @@ private: bool ms_dispatch(Message *m); void handle_monmap(MMonMap *m); - void ms_handle_reset(const entity_addr_t& peer); + void ms_handle_remote_reset(const entity_addr_t& peer); protected: class C_MountTimeout : public Context {