From f182c4c72c946e63fefe527f402efc58fdb4b71d Mon Sep 17 00:00:00 2001 From: Casey Bodley Date: Wed, 24 May 2023 13:24:52 -0400 Subject: [PATCH] radosgw-admin: add --inject-delay-at and --inject-delay-ms Signed-off-by: Casey Bodley (cherry picked from commit f815439ec59538f1d97ef27993510cace3d4fbf4) --- src/rgw/rgw_admin.cc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/rgw/rgw_admin.cc b/src/rgw/rgw_admin.cc index 9dbf290f160..e6880c7778e 100644 --- a/src/rgw/rgw_admin.cc +++ b/src/rgw/rgw_admin.cc @@ -3538,6 +3538,8 @@ int main(int argc, const char **argv) std::optional inject_error_at; std::optional inject_error_code; std::optional inject_abort_at; + std::optional inject_delay_at; + ceph::timespan inject_delay = std::chrono::milliseconds(2000); rgw::zone_features::set enable_features; rgw::zone_features::set disable_features; @@ -4030,6 +4032,10 @@ int main(int argc, const char **argv) inject_error_code = atoi(val.c_str()); } else if (ceph_argparse_witharg(args, i, &val, "--inject-abort-at", (char*)NULL)) { inject_abort_at = val; + } else if (ceph_argparse_witharg(args, i, &val, "--inject-delay-at", (char*)NULL)) { + inject_delay_at = val; + } else if (ceph_argparse_witharg(args, i, &val, "--inject-delay-ms", (char*)NULL)) { + inject_delay = std::chrono::milliseconds(atoi(val.c_str())); } else if (ceph_argparse_binary_flag(args, i, &detail, NULL, "--detail", (char*)NULL)) { // do nothing } else if (ceph_argparse_witharg(args, i, &val, "--context", (char*)NULL)) { @@ -8042,6 +8048,8 @@ next: fault.inject(*inject_error_at, InjectError{code, dpp()}); } else if (inject_abort_at) { fault.inject(*inject_abort_at, InjectAbort{}); + } else if (inject_delay_at) { + fault.inject(*inject_delay_at, InjectDelay{inject_delay, dpp()}); } ret = br.execute(num_shards, fault, max_entries, dpp(), verbose, &cout, formatter.get()); -- 2.39.5