]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
RGW: add delay injection options for integration testing
authorOguzhan Ozmen <oozmen@bloomberg.net>
Sun, 9 Nov 2025 00:59:56 +0000 (00:59 +0000)
committerOguzhan Ozmen <oozmen@bloomberg.net>
Fri, 13 Feb 2026 03:47:49 +0000 (03:47 +0000)
Introduce two developer-level configuration options for controlled delay
injection during integration testing:

  - rgw_inject_delay_sec: duration of the injected delay (in seconds)
  - rgw_inject_delay_pattern: pattern to select which delay points are
    activated

These options help reproduce timing-sensitive or race conditions in a
deterministic way during RGW integration tests.

In the future, these options may evolve to support more complex timing
scenarios by using list or map types. This would allow multiple delay
injection points to be configured simultaneously, for example: delaying
pattern A by 5 seconds, pattern B before or after a specific event, or
using different durations for each point.

Signed-off-by: Oguzhan Ozmen <oozmen@bloomberg.net>
src/common/options/rgw.yaml.in

index ad428b017b6c6ac736f98ec058be1dc179cc546d..88add0f3dbda8f0f3bc0c66b8fff5911d146b259 100644 (file)
@@ -2671,6 +2671,36 @@ options:
   services:
   - rgw
   with_legacy: true
+- name: rgw_inject_delay_sec
+  type: float
+  level: dev
+  desc: delay duration in seconds for test injection points
+  long_desc: Intended for integration and stress testing. When set to a positive
+    value, this option introduces an artificial delay at specific code paths to
+    help deterministically reproduce timing-sensitive scenarios. It is used in
+    conjunction with `rgw_inject_delay_pattern` to control which delay points
+    are activated.
+  default: 0
+  services:
+  - rgw
+  see_also:
+  - rgw_inject_delay_pattern
+  with_legacy: true
+- name: rgw_inject_delay_pattern
+  type: str
+  level: dev
+  desc: select which delay injection points are activated
+  long_desc: Used together with `rgw_inject_delay_sec` to target specific delay
+    injection points within the RGW code. The pattern should match a string
+    associated with one or more delay locations (e.g., "delay_bucket_full_sync_loop")
+    to activate them during testing.
+  services:
+  - rgw
+  flags:
+  - runtime
+  see_also:
+  - rgw_inject_delay_sec
+  with_legacy: true
 - name: rgw_sync_trace_history_size
   type: size
   level: advanced