From 1e2f3758118b7af6edf8d7153fdb6463fe2e177d Mon Sep 17 00:00:00 2001 From: Aishwarya Mathuria Date: Wed, 13 Nov 2024 19:18:30 +0530 Subject: [PATCH] mon/test_mon_osdmap_prune: Use first_pinned instead of first_committed In the test, we assume the trimming of osdmaps is done if osdmap_first_committed is equal to the epoch of the map upto which we had to trim. osdmap_first_committed however returns the value of cached_first_committed which is updated before the Paxos proposal for trim goes through. Normally, this is not a problem as when a refresh() happens, cached_first_committed will be corrected to the value before the trim was proposed if the Paxos proposal failed. But for this test, we encounter a failure in this case as the osdmap_first_committed will not be equal to the osdmap_manifest.first_pinned as the trim never went through. Changing the test to verify that osdmap_manifest.first_pinned has changed to the correct value is a better way to signify that the trim is complete for the purpose of this test. Fixes: https://tracker.ceph.com/issues/47838 Signed-off-by: Aishwarya Mathuria --- qa/workunits/mon/test_mon_osdmap_prune.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/qa/workunits/mon/test_mon_osdmap_prune.sh b/qa/workunits/mon/test_mon_osdmap_prune.sh index 9cdd72179577d..b33657c503a32 100755 --- a/qa/workunits/mon/test_mon_osdmap_prune.sh +++ b/qa/workunits/mon/test_mon_osdmap_prune.sh @@ -33,7 +33,9 @@ function wait_for_trim() { for ((i=0; i < ${#delays[*]}; ++i)); do fc=$(ceph report | jq '.osdmap_first_committed') - if [[ $fc -eq $epoch ]]; then + manifest="$(ceph report | jq '.osdmap_manifest')" + first_pinned_map=$(ceph report | jq '.osdmap_manifest.first_pinned') + if [[ $first_pinned_map -eq $epoch ]]; then return 0 fi sleep ${delays[$i]} -- 2.39.5