]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/cephadm: verify spec service_id before applying
authorTimothy Q Nguyen <timqn22@gmail.com>
Wed, 28 Jan 2026 17:01:52 +0000 (09:01 -0800)
committerTimothy Q Nguyen <timqn22@gmail.com>
Fri, 13 Feb 2026 01:51:08 +0000 (17:51 -0800)
There are scenarios where the wrong spec is applied to the wrong OSDs,
likely due to some unknown process interruption or corruption of cache
data, to mitigate this issue I added a check for OSDs service_id to match
the spec service_id.

Fixes: https://tracker.ceph.com/issues/74885
Signed-off-by: Timothy Q Nguyen <timqn22@gmail.com>
src/pybind/mgr/cephadm/services/osd.py

index 60a399149f9f9377ef77b34409f50ef656bdb9a8..ecd91f34c85abbafd4ed06411da20d6b37ae6b86 100644 (file)
@@ -126,6 +126,9 @@ class OSDService(CephService):
                 if osd['tags']['ceph.cluster_fsid'] != fsid:
                     logger.debug('mismatched fsid, skipping %s' % osd)
                     continue
+                if osd['tags']['ceph.osdspec_affinity'] != spec.service_id:
+                    logger.debug('mismatched service id, skipping %s' % osd)
+                    continue
                 if osd_id in before_osd_uuid_map and osd_id not in replace_osd_ids:
                     # if it exists but is part of the replacement operation, don't skip
                     continue