From: John Spray Date: Tue, 11 Feb 2014 23:48:33 +0000 (+0000) Subject: mds: Fix Dumper shutdown X-Git-Tag: v0.79~189^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=410c5074de67a380b7dc5106d448e87394670c1d;p=ceph.git mds: Fix Dumper shutdown It was shutting down messenger before monclient. This caused a sometimes-assertion when monclient tried to reconnect in response to ms_handle_reset. Signed-off-by: John Spray --- diff --git a/src/ceph_mds.cc b/src/ceph_mds.cc index 2cfe2850d788..23be20827f71 100644 --- a/src/ceph_mds.cc +++ b/src/ceph_mds.cc @@ -88,6 +88,8 @@ static int do_cmds_special_action(const std::string &action, journal_dumper->init(rank); journal_dumper->dump(dump_file.c_str()); mc.shutdown(); + messenger->shutdown(); + messenger->wait(); } else if (action == "undump-journal") { dout(0) << "undumping journal for mds." << rank << " from " << dump_file << dendl; @@ -95,6 +97,8 @@ static int do_cmds_special_action(const std::string &action, journal_dumper->init(rank); journal_dumper->undump(dump_file.c_str()); mc.shutdown(); + messenger->shutdown(); + messenger->wait(); } else if (action == "reset-journal") { dout(0) << "resetting journal" << dendl; @@ -102,7 +106,10 @@ static int do_cmds_special_action(const std::string &action, jr->init(rank); jr->reset(); mc.shutdown(); + messenger->shutdown(); + messenger->wait(); } + else { assert(0); } diff --git a/src/mds/Dumper.cc b/src/mds/Dumper.cc index b0a01493806c..bec44c4ba1dc 100644 --- a/src/mds/Dumper.cc +++ b/src/mds/Dumper.cc @@ -105,9 +105,6 @@ void Dumper::dump(const char *dump_file) if (r < 0) { // Error derr << "error on recovery: " << cpp_strerror(r) << dendl; - messenger->shutdown(); - // wait for messenger to finish - messenger->wait(); shutdown(); } else { dout(10) << "completed journal recovery" << dendl; @@ -159,11 +156,6 @@ void Dumper::dump(const char *dump_file) derr << "unable to open " << dump_file << ": " << cpp_strerror(err) << dendl; } - messenger->shutdown(); - - // wait for messenger to finish - messenger->wait(); - shutdown(); }