]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/test_mon_osdmap_prune: Use first_pinned instead of first_committed 61397/head
authorAishwarya Mathuria <amathuri@redhat.com>
Wed, 13 Nov 2024 13:48:30 +0000 (19:18 +0530)
committerAishwarya Mathuria <amathuri@redhat.com>
Wed, 15 Jan 2025 13:28:09 +0000 (18:58 +0530)
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 <amathuri@redhat.com>
qa/workunits/mon/test_mon_osdmap_prune.sh

index 9cdd72179577d0e76512cd33b9c648244297d22b..b33657c503a3215e010f18835013a6c548e2ff18 100755 (executable)
@@ -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]}