After migrating DB volume to a slow one RocksDB still
needs to be provided with slow.db path to properly access relevant files under db.slow subfolder.
Without that specification it tries to access them under 'db' one which
results in "not-found" error.
Fixes: https://tracker.ceph.com/issues/40434
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
void OriginalVolumeSelector::get_paths(const std::string& base, paths& res) const
{
res.emplace_back(base, db_total);
- res.emplace_back(base + ".slow", slow_total);
+ res.emplace_back(base + ".slow",
+ slow_total ? slow_total : db_total); // use fake non-zero value if needed to
+ // avoid RocksDB complains
}
#undef dout_prefix
BlueFSVolumeSelector::paths paths;
bluefs->get_vselector_paths(fn, paths);
- if (bluefs_layout.shared_bdev == BlueFS::BDEV_SLOW) {
- // we have both block.db and block; tell rocksdb!
- // note: the second (last) size value doesn't really matter
+ {
ostringstream db_paths;
bool first = true;
for (auto& p : paths) {