From: Matthew N. Heler Date: Sat, 16 May 2026 00:17:13 +0000 (-0500) Subject: rgw/cloud-tier: switch backoff jitter to ceph::util RNG X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=5c51fef3116d7135ce39ec40937b4b14308710b2;p=ceph.git rgw/cloud-tier: switch backoff jitter to ceph::util RNG include/random.h already provides a thread-local engine; use it for backoff jitter Signed-off-by: Matthew N. Heler --- diff --git a/src/rgw/driver/rados/rgw_lc_tier.cc b/src/rgw/driver/rados/rgw_lc_tier.cc index b6a038b669e..cd813249181 100644 --- a/src/rgw/driver/rados/rgw_lc_tier.cc +++ b/src/rgw/driver/rados/rgw_lc_tier.cc @@ -6,13 +6,13 @@ #include #include #include -#include #include #include #include "common/XMLFormatter.h" #include +#include "include/random.h" #include "rgw_lc.h" #include "rgw_lc_tier.h" #include "rgw_string.h" @@ -38,7 +38,6 @@ int retry_on_busy(optional_yield y, const DoutPrefixProvider *dpp, const int max_attempts = cct->_conf.get_val("rgw_cloud_tier_retry_limit"); const int64_t initial_ms = cct->_conf.get_val("rgw_cloud_tier_retry_delay_ms"); const int64_t max_ms = cct->_conf.get_val("rgw_cloud_tier_retry_max_ms"); - thread_local std::mt19937 rng{std::random_device{}()}; int ret = 0; for (int i = 0; i < max_attempts; i++) { @@ -46,7 +45,7 @@ int retry_on_busy(optional_yield y, const DoutPrefixProvider *dpp, if (ret != -EBUSY || i == max_attempts - 1) return ret; int64_t base = std::min(initial_ms << std::min(i, 30), max_ms); - int delay_ms = base - std::uniform_int_distribution(0, base / 10)(rng); + int delay_ms = base - ceph::util::generate_random_number(0, base / 10); ldpp_dout(dpp, 1) << op_name << ": -EBUSY, attempt " << (i + 1) << "/" << max_attempts << "; retrying after " << delay_ms