From afd799eae1f3d4a35f28db6a93e700c785c91a9f Mon Sep 17 00:00:00 2001 From: Casey Bodley Date: Thu, 1 Sep 2022 11:08:06 -0400 Subject: [PATCH] rgw: fix d3n crash in StoreManager::get_config() config options with `type: size` are not actually `size_t` but `uint64_t`, so accessing them with `get_val()` leads to a `bad_variant_access` exception. use the `Option::size_t` type instead Fixes: https://tracker.ceph.com/issues/57195 Signed-off-by: Casey Bodley --- src/rgw/rgw_sal.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/rgw/rgw_sal.cc b/src/rgw/rgw_sal.cc index 37b95cf0dbe..02c08184723 100644 --- a/src/rgw/rgw_sal.cc +++ b/src/rgw/rgw_sal.cc @@ -304,8 +304,8 @@ StoreManager::Config StoreManager::get_config(bool admin, CephContext* cct) /* Check to see if d3n is configured, but only for non-admin */ const auto& d3n = g_conf().get_val("rgw_d3n_l1_local_datacache_enabled"); if (!admin && d3n) { - if (g_conf().get_val("rgw_max_chunk_size") != - g_conf().get_val("rgw_obj_stripe_size")) { + if (g_conf().get_val("rgw_max_chunk_size") != + g_conf().get_val("rgw_obj_stripe_size")) { lsubdout(cct, rgw_datacache, 0) << "rgw_d3n: WARNING: D3N DataCache disabling (D3N requires that the chunk_size equals stripe_size)" << dendl; } else if (!g_conf().get_val("rgw_beast_enable_async")) { lsubdout(cct, rgw_datacache, 0) << "rgw_d3n: WARNING: D3N DataCache disabling (D3N requires yield context - rgw_beast_enable_async=true)" << dendl; -- 2.39.5