From 22fd8939d1e7418a7d087d5ce851aed5a8021e83 Mon Sep 17 00:00:00 2001 From: David Zafman Date: Tue, 29 Sep 2020 18:03:10 +0000 Subject: [PATCH] test: Avoid races by waiting for PGs go clean before query Fixes: https://tracker.ceph.com/issues/46405 Signed-off-by: David Zafman (cherry picked from commit 3ba7ebd3e299587b3828a7f794f070d3d01da4c4) --- qa/standalone/osd/osd-rep-recov-eio.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/qa/standalone/osd/osd-rep-recov-eio.sh b/qa/standalone/osd/osd-rep-recov-eio.sh index 6929e580d9fa..bf1adde9892d 100755 --- a/qa/standalone/osd/osd-rep-recov-eio.sh +++ b/qa/standalone/osd/osd-rep-recov-eio.sh @@ -120,6 +120,7 @@ function rados_get_data() { inject_$inject rep data $poolname $objname $dir 0 || return 1 rados_get $dir $poolname $objname || return 1 + wait_for_clean COUNT=$(ceph pg $pgid query | jq '.info.stats.stat_sum.num_objects_repaired') test "$COUNT" = "1" || return 1 flush_pg_stats @@ -142,6 +143,7 @@ function rados_get_data() { inject_$inject rep data $poolname $objname $dir 2 || return 1 rados_get $dir $poolname $objname || return 1 + wait_for_clean COUNT=$(ceph pg $pgid query | jq '.info.stats.stat_sum.num_objects_repaired') test "$COUNT" = "3" || return 1 flush_pg_stats @@ -153,6 +155,7 @@ function rados_get_data() { inject_$inject rep data $poolname $objname $dir 2 || return 1 rados_get $dir $poolname $objname hang || return 1 + wait_for_clean # After hang another repair couldn't happen, so count stays the same COUNT=$(ceph pg $pgid query | jq '.info.stats.stat_sum.num_objects_repaired') test "$COUNT" = "3" || return 1 @@ -200,6 +203,7 @@ function TEST_rados_repair_warning() { local primary=${object_osds[0]} local bad_peer=${object_osds[1]} + wait_for_clean COUNT=$(ceph pg $pgid query | jq '.info.stats.stat_sum.num_objects_repaired') test "$COUNT" = "$OBJS" || return 1 flush_pg_stats @@ -224,6 +228,7 @@ function TEST_rados_repair_warning() { rados_get $dir $poolname ${objbase}-$i || return 1 done + wait_for_clean COUNT=$(ceph pg $pgid query | jq '.info.stats.stat_sum.num_objects_repaired') test "$COUNT" = "$(expr $OBJS \* 2)" || return 1 flush_pg_stats -- 2.47.3