From 7f85b9ddb54cb3d83311daa7a72be27731be2806 Mon Sep 17 00:00:00 2001 From: Ilya Dryomov Date: Sun, 8 Feb 2026 09:27:26 +0100 Subject: [PATCH] qa: krbd_rxbounce.sh: do more reads to generate more errors On faster hardware having each thread do 1024 reads isn't always sufficient for the "two orders of magnitude" threshold that is used in the test. Fixes: https://tracker.ceph.com/issues/74712 Signed-off-by: Ilya Dryomov --- qa/workunits/rbd/krbd_rxbounce.sh | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/qa/workunits/rbd/krbd_rxbounce.sh b/qa/workunits/rbd/krbd_rxbounce.sh index ad00e3f96be..9dc2dc8e310 100755 --- a/qa/workunits/rbd/krbd_rxbounce.sh +++ b/qa/workunits/rbd/krbd_rxbounce.sh @@ -34,12 +34,16 @@ g++ -xc++ -o racereads - -lpthread <= 0); + int num_reads = atoi(argv[2]); + assert(num_reads > 0); + void *buf; int r = posix_memalign(&buf, 512, read_len); assert(r == 0); @@ -47,7 +51,7 @@ int main() { std::vector threads; for (int i = 0; i < num_objects; i++) { threads.emplace_back( - [fd, buf, read_off = static_cast(i) * object_size]() { + [fd, num_reads, buf, read_off = static_cast(i) * object_size]() { for (int i = 0; i < num_reads; i++) { auto len = pread(fd, buf, read_len, read_off); assert(len == read_len); @@ -63,38 +67,38 @@ EOF DEV=$(sudo rbd map -o ms_mode=legacy img) sudo dmesg -C -./racereads +./racereads $DEV 100000 [[ $(dmesg | grep -c 'libceph: osd.* bad crc/signature') -gt 100 ]] sudo rbd unmap $DEV DEV=$(sudo rbd map -o ms_mode=legacy,rxbounce img) sudo dmesg -C -./racereads +./racereads $DEV 100000 [[ $(dmesg | grep -c 'libceph: osd.* bad crc/signature') -eq 0 ]] sudo rbd unmap $DEV DEV=$(sudo rbd map -o ms_mode=crc img) sudo dmesg -C -./racereads +./racereads $DEV 10000 [[ $(dmesg | grep -c 'libceph: osd.* integrity error') -gt 100 ]] sudo rbd unmap $DEV DEV=$(sudo rbd map -o ms_mode=crc,rxbounce img) sudo dmesg -C -./racereads +./racereads $DEV 10000 [[ $(dmesg | grep -c 'libceph: osd.* integrity error') -eq 0 ]] sudo rbd unmap $DEV # rxbounce is a no-op for secure mode DEV=$(sudo rbd map -o ms_mode=secure img) sudo dmesg -C -./racereads +./racereads $DEV 10000 [[ $(dmesg | grep -c 'libceph: osd.* integrity error') -eq 0 ]] sudo rbd unmap $DEV DEV=$(sudo rbd map -o ms_mode=secure,rxbounce img) sudo dmesg -C -./racereads +./racereads $DEV 10000 [[ $(dmesg | grep -c 'libceph: osd.* integrity error') -eq 0 ]] sudo rbd unmap $DEV -- 2.47.3