]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/net: reconnect if sent queue is not empty
authorYingxin Cheng <yingxin.cheng@intel.com>
Mon, 26 Aug 2019 05:11:30 +0000 (13:11 +0800)
committerYingxin Cheng <yingxin.cheng@intel.com>
Wed, 28 Aug 2019 02:16:39 +0000 (10:16 +0800)
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
src/crimson/net/ProtocolV2.cc

index eef581ff5495f28f4bc10471f3ffce3cf27fecf3..270be91132ed690718f05658500e884c30fc7205 100644 (file)
@@ -410,7 +410,9 @@ void ProtocolV2::fault(bool backoff)
   if (conn.policy.lossy) {
     dispatch_reset();
     close();
-  } else if (conn.policy.server || (conn.policy.standby && !is_queued())) {
+  } else if (conn.policy.server ||
+             (conn.policy.standby &&
+              (!is_queued() && conn.sent.empty()))) {
     execute_standby();
   } else if (backoff) {
     execute_wait(false);
@@ -966,7 +968,9 @@ void ProtocolV2::execute_connecting()
             return;
           }
 
-          if (conn.policy.server || (conn.policy.standby && !is_queued())) {
+          if (conn.policy.server ||
+              (conn.policy.standby &&
+               (!is_queued() && conn.sent.empty()))) {
             execute_standby();
           } else {
             execute_wait(false);