]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
src/msg/async: Improve logging and prefixes for global_seq
authorKamoltat Sirivadhna <ksirivad@redhat.com>
Wed, 9 Jul 2025 03:47:59 +0000 (03:47 +0000)
committerKamoltat Sirivadhna <ksirivad@redhat.com>
Fri, 18 Jul 2025 05:13:03 +0000 (05:13 +0000)
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 <ksirivad@redhat.com>
src/msg/async/AsyncMessenger.cc
src/msg/async/AsyncMessenger.h
src/msg/async/ProtocolV1.cc
src/msg/async/ProtocolV2.cc

index 64868f93c0137ed6b8ce8a15f71dea03f97b0d06..244716060f08d706b3f40b9f0157577012ee3ce0 100644 (file)
@@ -1058,6 +1058,21 @@ void AsyncMessenger::mark_down_addrs(const entity_addrvec_t& addrs)
   }
 }
 
+__u32 AsyncMessenger::get_global_seq(__u32 old)
+{
+  std::lock_guard<ceph::spinlock> 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();
index 933dc3b620c8fc132b23b1a9307ece9e8f734f3d..91b6c4747e177e443756212681a9cfa573bddd1d 100644 (file)
@@ -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<ceph::spinlock> 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
index 029a8c0d6244f13284edad2a4677d16e56bd3a1e..680b80a8579f63d2045b89104976b3e89fd94617 100644 (file)
@@ -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)
index 2058a1552bab1d41f2618980d8f8ab58a5ea9c99..cc145c4557a5a237a07934ff85c83751f51846cb 100644 (file)
@@ -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()