5bdca4e076
In ancient times, the messenger could both initiate and accept connections. An artifact if that was data structures to store/process an incoming ceph_msg_connect request and send an outgoing ceph_msg_connect_reply. Sadly, the negotiation code was referencing those structures and ignoring important information (like the peer's connect_seq) from the correct ones. Among other things, this fixes tight reconnect loops where the server sends RETRY_SESSION and we (the client) retries with the same connect_seq as last time. This bug pretty easily triggered by injecting socket failures on the MDS and running some fs workload like workunits/direct_io/test_sync_io. Signed-off-by: Sage Weil <sage@inktank.com> |
||
---|---|---|
.. | ||
auth.h | ||
buffer.h | ||
ceph_debug.h | ||
ceph_frag.h | ||
ceph_fs.h | ||
ceph_hash.h | ||
debugfs.h | ||
decode.h | ||
libceph.h | ||
mdsmap.h | ||
messenger.h | ||
mon_client.h | ||
msgpool.h | ||
msgr.h | ||
osd_client.h | ||
osdmap.h | ||
pagelist.h | ||
rados.h | ||
types.h |