From: Adam Kupczyk Date: Wed, 13 May 2026 04:50:04 +0000 (+0200) Subject: extblkdev: Fix FCM plugin asserting on multivolume devices X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F68877%2Fhead;p=ceph.git extblkdev: Fix FCM plugin asserting on multivolume devices The issue is that FCM does not work properly with BlueStore "block" that spans over multiple devices, even FCM ones. The current code detects it, and issues health warning. But by coding mistake the check for it applies to all deployments, and is an assert-grade error. The original problem was introduced with: https://github.com/ceph/ceph/pull/68024 (as backport of https://github.com/ceph/ceph/pull/66318) It was supposed to be solved with: https://github.com/ceph/ceph/pull/68663 (as backport of https://github.com/ceph/ceph/pull/68416) But it was not, since the actual offending lines were removed by this temporary solution: https://github.com/ceph/ceph/pull/68391 This commit now properly removes the lines were not removed. Fixes: https://tracker.ceph.com/issues/76581 Signed-off-by: Adam Kupczyk --- diff --git a/src/extblkdev/fcm/ExtBlkDevPluginFcm.cc b/src/extblkdev/fcm/ExtBlkDevPluginFcm.cc index 05b4e6607ac..035932e9362 100644 --- a/src/extblkdev/fcm/ExtBlkDevPluginFcm.cc +++ b/src/extblkdev/fcm/ExtBlkDevPluginFcm.cc @@ -328,9 +328,6 @@ public: // determine device name for underlying hardware std::set raw_devices; get_raw_devices(logdevname, &raw_devices); - if (raw_devices.size() > 1) { - ceph_abort("Device " + logdevname_a + " consist of "+ raw_devices.size() + " devices: " + raw_devices); - } for (auto& d : raw_devices) { std::string devpath = "/sys/block/" + d + "/device/"; uint32_t vendor;