]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson: Avoid any Message's connection usage 51318/head
authorMatan Breizman <mbreizma@redhat.com>
Tue, 2 May 2023 13:28:39 +0000 (13:28 +0000)
committerMatan Breizman <mbreizma@redhat.com>
Mon, 8 May 2023 09:27:32 +0000 (09:27 +0000)
In continuation to: https://github.com/ceph/ceph/pull/50835
Do not include Crimson's SocketConnection in Message header.

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
src/crimson/admin/admin_socket.cc
src/crimson/osd/shard_services.h
src/messages/MForward.h
src/messages/MOSDOp.h
src/msg/Message.cc
src/msg/Message.h
src/osd/OpRequest.h

index 88ce8b1b73c29ac7886d0c90a2a4353606295d68..dc675f5a4969558c30be539130038f85ce2c25d9 100644 (file)
@@ -20,6 +20,7 @@
 #include "messages/MCommandReply.h"
 #include "crimson/common/log.h"
 #include "crimson/net/Socket.h"
+#include "crimson/net/Connection.h"
 
 using namespace crimson::common;
 using namespace std::literals;
index 90a06bb90cc0cd43a7843d04a8468d17ed2f14de..fb3359852e390904662be1ca87dcc26f025a0f01 100644 (file)
@@ -22,6 +22,7 @@
 #include "crimson/osd/pg_map.h"
 #include "crimson/osd/state.h"
 #include "common/AsyncReserver.h"
+#include "crimson/net/Connection.h"
 
 namespace crimson::net {
   class Messenger;
index b6fef9e5bb1528efb2042d50bd1a134cbee3ea0e..d574a3751c53955d1df79e86b696e30d112bcf62 100644 (file)
@@ -48,9 +48,13 @@ public:
     tid(t), client_caps(caps), msg(NULL) {
     client_type = m->get_source().type();
     client_addrs = m->get_source_addrs();
+#ifdef WITH_SEASTAR
+    ceph_abort("In crimson, conn is independently maintained outside Message");
+#else
     if (auto &con = m->get_connection()) {
       client_socket_addr = con->get_peer_socket_addr();
     }
+#endif
     con_features = feat;
     msg = (PaxosServiceMessage*)m->get();
   }
index 97432d1186b117d412eb912d955eda42242482a1..6edc590e51f110bf2d600b7e6fbb30f8af50dc40 100644 (file)
@@ -167,10 +167,10 @@ public:
     if (features)
       return features;
 #ifdef WITH_SEASTAR
-    // In crimson, conn is independently maintained outside Message.
-    ceph_abort();
-#endif
+    ceph_abort("In crimson, conn is independently maintained outside Message");
+#else
     return get_connection()->get_features();
+#endif
   }
 
   MOSDOp()
index fdf32b5e09f2bce20439f1c4529316ad1ce95f51..372606ea816fe94c36298b0efc4cfd76d2859848 100644 (file)
@@ -326,7 +326,10 @@ Message *decode_message(CephContext *cct,
     if (front_crc != footer.front_crc) {
       if (cct) {
        ldout(cct, 0) << "bad crc in front " << front_crc << " != exp " << footer.front_crc
-                     << " from " << conn->get_peer_addr() << dendl;
+#ifndef WITH_SEASTAR
+                     << " from " << conn->get_peer_addr()
+#endif
+                     << dendl;
        ldout(cct, 20) << " ";
        front.hexdump(*_dout);
        *_dout << dendl;
@@ -336,7 +339,10 @@ Message *decode_message(CephContext *cct,
     if (middle_crc != footer.middle_crc) {
       if (cct) {
        ldout(cct, 0) << "bad crc in middle " << middle_crc << " != exp " << footer.middle_crc
-                     << " from " << conn->get_peer_addr() << dendl;
+#ifndef WITH_SEASTAR
+                     << " from " << conn->get_peer_addr()
+#endif
+                     << dendl;
        ldout(cct, 20) << " ";
        middle.hexdump(*_dout);
        *_dout << dendl;
@@ -350,7 +356,10 @@ Message *decode_message(CephContext *cct,
       if (data_crc != footer.data_crc) {
        if (cct) {
          ldout(cct, 0) << "bad crc in data " << data_crc << " != exp " << footer.data_crc
-                       << " from " << conn->get_peer_addr() << dendl;
+#ifndef WITH_SEASTAR
+                       << " from " << conn->get_peer_addr()
+#endif
+                       << dendl;
          ldout(cct, 20) << " ";
          data.hexdump(*_dout);
          *_dout << dendl;
index 9eec1c5bb8385ae176c439734e95eccae596ac3e..c54bba7b66548f25698427459f862d34a6e5b503 100644 (file)
 #include "msg/MessageRef.h"
 #include "msg_types.h"
 
-#ifdef WITH_SEASTAR
-#  include "crimson/net/SocketConnection.h"
-#endif // WITH_SEASTAR
-
 // monitor internal
 #define MSG_MON_SCRUB              64
 #define MSG_MON_ELECTION           65
 class Message : public RefCountedObject {
 public:
 #ifdef WITH_SEASTAR
-  using ConnectionRef = crimson::net::ConnectionRef;
+  // In crimson, conn is independently maintained outside Message.
+  using ConnectionRef = void*;
 #else
   using ConnectionRef = ::ConnectionRef;
-#endif // WITH_SEASTAR
+#endif
 
 protected:
   ceph_msg_header  header;      // headerelope
@@ -351,8 +348,7 @@ protected:
 public:
   const ConnectionRef& get_connection() const {
 #ifdef WITH_SEASTAR
-    // In crimson, conn is independently maintained outside Message.
-    ceph_abort();
+    ceph_abort("In crimson, conn is independently maintained outside Message");
 #endif
     return connection;
   }
@@ -497,13 +493,21 @@ public:
     return entity_name_t(header.src);
   }
   entity_addr_t get_source_addr() const {
+#ifdef WITH_SEASTAR
+    ceph_abort("In crimson, conn is independently maintained outside Message");
+#else
     if (connection)
       return connection->get_peer_addr();
+#endif
     return entity_addr_t();
   }
   entity_addrvec_t get_source_addrs() const {
+#ifdef WITH_SEASTAR
+    ceph_abort("In crimson, conn is independently maintained outside Message");
+#else
     if (connection)
       return connection->get_peer_addrs();
+#endif
     return entity_addrvec_t();
   }
 
@@ -561,7 +565,11 @@ class SafeMessage : public Message {
 public:
   using Message::Message;
   bool is_a_client() const {
+#ifdef WITH_SEASTAR
+    ceph_abort("In crimson, conn is independently maintained outside Message");
+#else
     return get_connection()->get_peer_type() == CEPH_ENTITY_TYPE_CLIENT;
+#endif
   }
 
 private:
index e0bc232a53b2d8428b4aeb6d19d4a8f13cfc80d7..92bb17ef4b6b392bda9d3cf0f88af6a66abc6911 100644 (file)
@@ -54,7 +54,11 @@ public:
   void _dump(ceph::Formatter *f) const override;
 
   bool has_feature(uint64_t f) const {
+#ifdef WITH_SEASTAR
+    ceph_abort("In crimson, conn is independently maintained outside Message");
+#else
     return request->get_connection()->has_feature(f);
+#endif
   }
 
 private: