]> git-server-git.apps.pok.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)
committerNathan Cutler <ncutler@suse.com>
Wed, 24 Jul 2019 09:35:39 +0000 (11:35 +0200)
Limit MOSDMap message size by bytes as well as map count.

Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit e15be00560c1492e0807d0779cfd0d6088396b3e)

Conflicts:
src/common/config_values.h
- this file does not exist in mimic; apply change to src/common/config.h instead
- size_t -> uint64_t

src/common/config.h
src/common/legacy_config_opts.h
src/common/options.cc

index a3adf29c7ce14512357a159cd771eab16277789d..683c229b0643fd5006342e089f1435620c69bbd8 100644 (file)
@@ -357,6 +357,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) uint64_t name;
 #define OPTION(name, ty) \
   public:                      \
     OPTION_##ty(name)          
index c0c00640ebbdcde63a7bfaa10e990e903c423b8d..9020338d50d7d24f317f090cfa330ec0c830668f 100644 (file)
@@ -604,6 +604,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 c32e57a62130efa3f66132cf3a26f5b26f4b57f5..e90a8946b81d326bf0fec99889faf6ebcd6a420e 100644 (file)
@@ -2278,7 +2278,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)