From 1cbf39b594e32535eae505e5c5d8168af58bff42 Mon Sep 17 00:00:00 2001 From: Matan Breizman Date: Mon, 8 Jun 2026 15:45:20 +0300 Subject: [PATCH] crimson/osd: fix CyanStore boot with crimson OSD - Remove dead cyan_store.h includes from pg.cc and shard_services.cc. - Fix CyanStore::mkfs to write type="cyanstore" instead of "memstore" - Handle missing device class in OSD::start: stores that return an empty device class (e.g CyanStore) now fall back to is_rotational=false with a warning instead of throwing Signed-off-by: Matan Breizman --- src/crimson/os/cyanstore/cyan_store.cc | 2 +- src/crimson/osd/osd.cc | 3 ++- src/crimson/osd/pg.cc | 1 - src/crimson/osd/shard_services.cc | 1 - 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/crimson/os/cyanstore/cyan_store.cc b/src/crimson/os/cyanstore/cyan_store.cc index cf45dbb556f..7b29afc8c22 100644 --- a/src/crimson/os/cyanstore/cyan_store.cc +++ b/src/crimson/os/cyanstore/cyan_store.cc @@ -179,7 +179,7 @@ CyanStore::mkfs_ertr::future<> CyanStore::mkfs(uuid_d new_osd_fsid) } } }).safe_then([this]{ - return write_meta("type", "memstore"); + return write_meta("type", "cyanstore"); }).safe_then([this] { return shard_stores.invoke_on_all([](auto &local_store) { return seastar::do_for_each(local_store.mshard_stores, [](auto& mshard_store) { diff --git a/src/crimson/osd/osd.cc b/src/crimson/osd/osd.cc index 25096a1fb8a..791338db7ac 100644 --- a/src/crimson/osd/osd.cc +++ b/src/crimson/osd/osd.cc @@ -600,7 +600,8 @@ seastar::future<> OSD::start() local_service.local_state.initialize_scheduler(local_service.get_cct(), *is_rotational); }); } else { - throw std::runtime_error("No device class is set"); + WARN("no device class set, defaulting is_rotational to false"); + is_rotational = false; } monc->sub_want("osd_pg_creates", last_pg_create_epoch, 0); monc->sub_want("mgrmap", 0, 0); diff --git a/src/crimson/osd/pg.cc b/src/crimson/osd/pg.cc index dfd756f9908..fd382088f7f 100644 --- a/src/crimson/osd/pg.cc +++ b/src/crimson/osd/pg.cc @@ -35,7 +35,6 @@ #include "crimson/common/log.h" #include "crimson/net/Connection.h" #include "crimson/net/Messenger.h" -#include "crimson/os/cyanstore/cyan_store.h" #include "crimson/os/futurized_collection.h" #include "crimson/osd/ec_backend.h" #include "crimson/osd/ec_recovery_backend.h" diff --git a/src/crimson/osd/shard_services.cc b/src/crimson/osd/shard_services.cc index bf108a1c73b..7b1df03eba2 100644 --- a/src/crimson/osd/shard_services.cc +++ b/src/crimson/osd/shard_services.cc @@ -20,7 +20,6 @@ #include "crimson/mon/MonClient.h" #include "crimson/net/Messenger.h" #include "crimson/net/Connection.h" -#include "crimson/os/cyanstore/cyan_store.h" #include "crimson/osd/osdmap_service.h" #include "crimson/osd/osd_operations/pg_advance_map.h" #include "crimson/osd/pg.h" -- 2.47.3