]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
TestMsgr: Fix forever hang under lossless policy and one is WAIT another down
authorHaomai Wang <haomaiwang@gmail.com>
Wed, 26 Aug 2015 02:36:10 +0000 (10:36 +0800)
committerHaomai Wang <haomaiwang@gmail.com>
Thu, 27 Aug 2015 08:53:15 +0000 (16:53 +0800)
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
src/test/msgr/test_msgr.cc

index f8f1928de2e07e936059f5ed95dcba61a7a38538..03692eb288a19da375021447d67143a8d3efdad1 100644 (file)
@@ -983,6 +983,15 @@ class SyntheticWorkload {
     ConnectionRef conn = _get_random_connection();
     dispatcher.clear_pending(conn);
     conn->mark_down();
+    pair<Messenger*, Messenger*> &p = available_connections[conn];
+    // it's a lossless policy, so we need to mark down each side
+    if (!p.first->get_default_policy().server && !p.second->get_default_policy().server) {
+      ASSERT_EQ(conn->get_messenger(), p.first);
+      ConnectionRef peer = p.second->get_connection(p.first->get_myinst());
+      peer->mark_down();
+      dispatcher.clear_pending(peer);
+      available_connections.erase(peer);
+    }
     ASSERT_EQ(available_connections.erase(conn), 1U);
   }