]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
common/options: add osd_map_message_max_bytes
authorSage Weil <sage@redhat.com>
Fri, 8 Feb 2019 13:22:20 +0000 (07:22 -0600)
committerSage Weil <sage@redhat.com>
Fri, 8 Feb 2019 15:17:11 +0000 (09:17 -0600)
Limit MOSDMap message size by bytes as well as map count.

Signed-off-by: Sage Weil <sage@redhat.com>
src/common/config_values.h
src/common/legacy_config_opts.h
src/common/options.cc

index 2614d2ef15978b28ca6a87d9516c4f1376cb5500..fdfff2b16f33eea5872411330d378507b3cf2541 100644 (file)
@@ -49,6 +49,7 @@ public:
 #define OPTION_OPT_U32(name) uint64_t name;
 #define OPTION_OPT_U64(name) uint64_t name;
 #define OPTION_OPT_UUID(name) uuid_d name;
+#define OPTION_OPT_SIZE(name) size_t name;
 #define OPTION(name, ty)       \
   public:                      \
     OPTION_##ty(name)          
index 0269656f8fac56045a0117d15f1a28bef1e7ca14..247207e447e6d950a32681d16a3617524e5cf923 100644 (file)
@@ -599,6 +599,7 @@ OPTION(osd_objecter_finishers, OPT_INT)
 OPTION(osd_map_dedup, OPT_BOOL)
 OPTION(osd_map_cache_size, OPT_INT)
 OPTION(osd_map_message_max, OPT_INT)  // max maps per MOSDMap message
+OPTION(osd_map_message_max_bytes, OPT_SIZE)  // max maps per MOSDMap message
 OPTION(osd_map_share_max_epochs, OPT_INT)  // cap on # of inc maps we send to peers, clients
 OPTION(osd_inject_bad_map_crc_probability, OPT_FLOAT)
 OPTION(osd_inject_failure_on_pg_removal, OPT_BOOL)
index e11ce93674dd9b656a60405c625d3b6845bf597f..6737ff0dac81ea9cc4fc4b9128d01860818392cd 100644 (file)
@@ -2578,7 +2578,11 @@ std::vector<Option> get_global_options() {
 
     Option("osd_map_message_max", Option::TYPE_INT, Option::LEVEL_ADVANCED)
     .set_default(40)
-    .set_description(""),
+    .set_description("maximum number of OSDMaps to include in a single message"),
+
+    Option("osd_map_message_max_bytes", Option::TYPE_SIZE, Option::LEVEL_ADVANCED)
+    .set_default(10_M)
+    .set_description("maximum number of bytes worth of OSDMaps to include in a single message"),
 
     Option("osd_map_share_max_epochs", Option::TYPE_INT, Option::LEVEL_ADVANCED)
     .set_default(40)