]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
msg/async, v2: unify WAIT frames with other payload frames.
authorRadoslaw Zarzynski <rzarzyns@redhat.com>
Tue, 26 Feb 2019 15:39:47 +0000 (16:39 +0100)
committerRadoslaw Zarzynski <rzarzyns@redhat.com>
Thu, 28 Feb 2019 20:42:39 +0000 (21:42 +0100)
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
src/msg/async/ProtocolV2.cc
src/msg/async/ProtocolV2.h

index 8a19b7759984cc95ccf5f6ac50016c615acbea50..a0d9b7d00e92e1348790d5b7f296313f7b466a4d 100644 (file)
@@ -1148,9 +1148,8 @@ CtPtr ProtocolV2::handle_read_frame_dispatch() {
     case Tag::KEEPALIVE2:
     case Tag::KEEPALIVE2_ACK:
     case Tag::ACK:
-      return handle_frame_payload();
     case Tag::WAIT:
-      return handle_wait();
+      return handle_frame_payload();
     case Tag::MESSAGE:
       // see the comment in ::read_frame_segment().
       return handle_message_complete();
@@ -1284,6 +1283,8 @@ CtPtr ProtocolV2::handle_frame_payload() {
       return handle_keepalive2_ack(payload);
     case Tag::ACK:
       return handle_message_ack(payload);
+    case Tag::WAIT:
+      return handle_wait(payload);
     default:
       ceph_abort();
   }
@@ -2123,14 +2124,14 @@ CtPtr ProtocolV2::handle_session_retry_global(ceph::bufferlist &payload)
   return send_reconnect();
 }
 
-CtPtr ProtocolV2::handle_wait() {
-  ldout(cct, 20) << __func__ << dendl;
-  ldout(cct, 1) << __func__ << " received WAIT (connection race)" << dendl;
+CtPtr ProtocolV2::handle_wait(ceph::bufferlist &payload) {
+  ldout(cct, 20) << __func__
+                << " received WAIT (connection race)"
+                << " payload.length()=" << payload.length()
+                << dendl;
+
   state = WAIT;
-  ceph_assert(rx_segments_data.size() == 1);
-  ceph_assert(rx_segments_desc.size() == 1);
-  WaitFrame::Decode(session_stream_handlers,
-                    rx_segments_data[SegmentIndex::Frame::PAYLOAD]);
+  WaitFrame::Decode(session_stream_handlers, payload);
   return _fault();
 }
 
index f564452c295a7d3076820bbc7439e47fd5baa587..0fe22fd1263773d3270d20f066482e1c77ee45cf 100644 (file)
@@ -241,7 +241,7 @@ private:
   Ct<ProtocolV2> *handle_session_reset(ceph::bufferlist &payload);
   Ct<ProtocolV2> *handle_session_retry(ceph::bufferlist &payload);
   Ct<ProtocolV2> *handle_session_retry_global(ceph::bufferlist &payload);
-  Ct<ProtocolV2> *handle_wait();
+  Ct<ProtocolV2> *handle_wait(ceph::bufferlist &payload);
   Ct<ProtocolV2> *handle_reconnect_ok(ceph::bufferlist &payload);
   Ct<ProtocolV2> *handle_server_ident(ceph::bufferlist &payload);