]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: Fix Dumper shutdown
authorJohn Spray <john.spray@inktank.com>
Tue, 11 Feb 2014 23:48:33 +0000 (23:48 +0000)
committerJohn Spray <john.spray@inktank.com>
Wed, 26 Feb 2014 18:15:45 +0000 (18:15 +0000)
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 <john.spray@inktank.com>
src/ceph_mds.cc
src/mds/Dumper.cc

index 2cfe2850d7886975ac370c8124316cc094ea589a..23be20827f71cb4cc6e8135b63da23514e49ae44 100644 (file)
@@ -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);
   }
index b0a01493806c176cd899e09cf727b6a32bb7330f..bec44c4ba1dc2280940a0e88249b569735e022e3 100644 (file)
@@ -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();
 }