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 <akupczyk@ibm.com>
// determine device name for underlying hardware
std::set<std::string> 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;