]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
msg/async/ProtocolV2: take care of features when replacing the socket 35733/head
authorIlya Dryomov <idryomov@gmail.com>
Fri, 26 Jun 2020 20:57:06 +0000 (20:57 +0000)
committerIlya Dryomov <idryomov@gmail.com>
Mon, 13 Jul 2020 12:45:53 +0000 (14:45 +0200)
commitb9db4abeb4196b9a398a20f6c43ffdb3fa3c6063
tree0ccc2a11b06c8f7ea7f21b63b9fce0132856d1e4
parent6f63994dcc6542d7f55917ebb14db0f84d357d3d
msg/async/ProtocolV2: take care of features when replacing the socket

reuse_connection() can be called on exproto in BANNER_CONNECTING
(i.e. without peer_supported_features and with tx/rx_frame_asm set to
msgr2.0), but this state isn't carried over.  If the donor connection
is msgr2.1, this leads to repeated connection faults on crc or auth tag
mismatches because we end up assembling 2.0 frames while the peer is
expecting 2.1 frames.

Fixes: https://tracker.ceph.com/issues/46180
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
(cherry picked from commit baff20a14bb322fc11bf13495bb8f5d5f4626116)

Conflicts:
src/test/msgr/test_msgr.cc [ commits 5e3aa5d15d2d
  ("ceph_test_msgr: remove simple") and bfb8c741cd1e
  ("test/msgr: s/Mutex/ceph::mutex/") not in nautilus ]
src/msg/async/ProtocolV2.cc
src/msg/async/frames_v2.h
src/test/msgr/test_msgr.cc