From: Radoslaw Zarzynski Date: Tue, 26 Feb 2019 15:39:47 +0000 (+0100) Subject: msg/async, v2: unify WAIT frames with other payload frames. X-Git-Tag: v14.1.1~70^2~19 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=cfa4d25167073b6f5ea539314c9dea003cd53f48;p=ceph.git msg/async, v2: unify WAIT frames with other payload frames. Signed-off-by: Radoslaw Zarzynski --- diff --git a/src/msg/async/ProtocolV2.cc b/src/msg/async/ProtocolV2.cc index 8a19b7759984..a0d9b7d00e92 100644 --- a/src/msg/async/ProtocolV2.cc +++ b/src/msg/async/ProtocolV2.cc @@ -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(); } diff --git a/src/msg/async/ProtocolV2.h b/src/msg/async/ProtocolV2.h index f564452c295a..0fe22fd12637 100644 --- a/src/msg/async/ProtocolV2.h +++ b/src/msg/async/ProtocolV2.h @@ -241,7 +241,7 @@ private: Ct *handle_session_reset(ceph::bufferlist &payload); Ct *handle_session_retry(ceph::bufferlist &payload); Ct *handle_session_retry_global(ceph::bufferlist &payload); - Ct *handle_wait(); + Ct *handle_wait(ceph::bufferlist &payload); Ct *handle_reconnect_ok(ceph::bufferlist &payload); Ct *handle_server_ident(ceph::bufferlist &payload);