]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
mgr/progress: compare up set instead of acting set 65131/head
authorKamoltat Sirivadhna <ksirivad@redhat.com>
Tue, 19 Aug 2025 14:21:38 +0000 (14:21 +0000)
committerKamoltat Sirivadhna <ksirivad@redhat.com>
Tue, 19 Aug 2025 19:08:55 +0000 (19:08 +0000)
commitd13d7397f80d478ab7f7f231f05a2ebf5cf556f6
tree13e73e0aa317068e4f436405d7818a69fc28cfea
parent6c001553ea4189ae5fe9bc0d0722348cbd31a3d1
mgr/progress: compare up set instead of acting set

Problem:
The progress module failed to trigger when OSDs were reweighted
to 0. We were comparing old vs new acting sets after wrapping
them with set(), which discards ordering. As a result, a rotation
such as:

  old acting = [1,2,3,4]
  new acting = [2,3,4,1]

was reduced to the same unordered set {1,2,3,4}, and no change
was detected. Additionally, the acting set from OSDMap naturally
retains stale OSDs, so stale entries were not discarded.

Solution:
Compare the up set instead, which both preserves ordering and
drops stale OSDs. This ensures rotations and membership changes
are correctly detected. Also removed set() usage in
_osd_in_out() and tightened logging to reduce noise.

Fixes: https://tracker.ceph.com/issues/72647
Signed-off-by: Kamoltat Sirivadhna <ksirivad@redhat.com>
src/pybind/mgr/progress/module.py