From: Kamoltat Sirivadhna Date: Wed, 9 Jul 2025 03:47:59 +0000 (+0000) Subject: src/msg/async: Improve logging and prefixes for global_seq X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=b4e39b239a1406f06eab9026c8a9101efe164e62;p=ceph.git src/msg/async: Improve logging and prefixes for global_seq global_seq needs more visibility on how it gets updated, decided to add more loggings in AsyncMessenger::get_global_seq and also added the prefixes for global_seq in both ProtocolV1 and ProtocolV2. Fixes: https://tracker.ceph.com/issues/71344 Signed-off-by: Kamoltat Sirivadhna --- diff --git a/src/msg/async/AsyncMessenger.cc b/src/msg/async/AsyncMessenger.cc index 64868f93c0137..244716060f08d 100644 --- a/src/msg/async/AsyncMessenger.cc +++ b/src/msg/async/AsyncMessenger.cc @@ -1058,6 +1058,21 @@ void AsyncMessenger::mark_down_addrs(const entity_addrvec_t& addrs) } } +__u32 AsyncMessenger::get_global_seq(__u32 old) +{ + std::lock_guard lg(global_seq_lock); + + if (old > global_seq) { + ldout(cct, 10) << __func__ << " old=" << old + << " > global_seq=" << global_seq + << "; new global_seq=" << old << dendl; + global_seq = old; + } + __u32 ret = ++global_seq; + ldout(cct, 10) << __func__ << " increment to global_seq=" << global_seq << dendl; + return ret; +} + int AsyncMessenger::get_proto_version(int peer_type, bool connect) const { int my_type = my_name.type(); diff --git a/src/msg/async/AsyncMessenger.h b/src/msg/async/AsyncMessenger.h index 933dc3b620c8f..91b6c4747e177 100644 --- a/src/msg/async/AsyncMessenger.h +++ b/src/msg/async/AsyncMessenger.h @@ -400,15 +400,8 @@ public: * * @return a global sequence ID that nobody else has seen. */ - __u32 get_global_seq(__u32 old=0) { - std::lock_guard lg(global_seq_lock); + __u32 get_global_seq(__u32 old=0); - if (old > global_seq) - global_seq = old; - __u32 ret = ++global_seq; - - return ret; - } /** * Get the protocol version we support for the given peer type: either * a peer protocol (if it matches our own), the protocol version for the diff --git a/src/msg/async/ProtocolV1.cc b/src/msg/async/ProtocolV1.cc index 029a8c0d6244f..680b80a8579f6 100644 --- a/src/msg/async/ProtocolV1.cc +++ b/src/msg/async/ProtocolV1.cc @@ -22,8 +22,8 @@ std::ostream &ProtocolV1::_conn_prefix(std::ostream *_dout) { << " conn(" << connection << " " << this << " :" << connection->port << " s=" << get_state_name(state) - << " pgs=" << peer_global_seq << " cs=" << connect_seq - << " l=" << connection->policy.lossy << ")."; + << " pgs=" << peer_global_seq << " gs=" << global_seq + << " cs=" << connect_seq << " l=" << connection->policy.lossy << ")."; } #define WRITE(B, C) write(CONTINUATION(C), B) diff --git a/src/msg/async/ProtocolV2.cc b/src/msg/async/ProtocolV2.cc index 2058a1552bab1..cc145c4557a5a 100644 --- a/src/msg/async/ProtocolV2.cc +++ b/src/msg/async/ProtocolV2.cc @@ -23,7 +23,8 @@ std::ostream &ProtocolV2::_conn_prefix(std::ostream *_dout) { << " " << ceph_con_mode_name(auth_meta->con_mode) << " :" << connection->port << " s=" << get_state_name(state) << " pgs=" << peer_global_seq - << " cs=" << connect_seq << " l=" << connection->policy.lossy + << " gs=" << global_seq << " cs=" << connect_seq + << " l=" << connection->policy.lossy << " rev1=" << HAVE_MSGR2_FEATURE(peer_supported_features, REVISION_1) << " crypto rx=" << session_stream_handlers.rx.get()