From: Neha Ojha Date: Thu, 28 Apr 2022 21:59:23 +0000 (+0000) Subject: Revert "kv/RocksDBStore: simplify RocksDBStore::get_cf_handle(string, IteratorBounds)" X-Git-Tag: v16.2.8~3^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=95253476627fcf087d1e19f4dfd533a89f1c6161;p=ceph.git Revert "kv/RocksDBStore: simplify RocksDBStore::get_cf_handle(string, IteratorBounds)" This reverts commit a1f40617a3d2c83bfd5e1c957d7cff13150d00c7. Caused a regression https://tracker.ceph.com/issues/55444 Signed-off-by: Neha Ojha --- diff --git a/src/kv/RocksDBStore.cc b/src/kv/RocksDBStore.cc index 4c079d3d2333..d7a5ee707047 100644 --- a/src/kv/RocksDBStore.cc +++ b/src/kv/RocksDBStore.cc @@ -675,18 +675,21 @@ rocksdb::ColumnFamilyHandle *RocksDBStore::get_cf_handle(const std::string& pref return nullptr; } auto iter = cf_handles.find(prefix); - ceph_assert(iter != cf_handles.end()); - ceph_assert(iter->second.handles.size() != 1); - if (iter->second.hash_l != 0) { + if (iter == cf_handles.end() || iter->second.hash_l != 0) { return nullptr; - } - auto lower_bound_hash_str = get_key_hash_view(iter->second, bounds.lower_bound->data(), bounds.lower_bound->size()); - auto upper_bound_hash_str = get_key_hash_view(iter->second, bounds.upper_bound->data(), bounds.upper_bound->size()); - if (lower_bound_hash_str == upper_bound_hash_str) { - auto key = *bounds.lower_bound; - return get_key_cf(iter->second, key.data(), key.size()); } else { - return nullptr; + if (iter->second.handles.size() == 1) { + return iter->second.handles[0]; + } else { + auto lower_bound_hash_str = get_key_hash_view(iter->second, bounds.lower_bound->data(), bounds.lower_bound->size()); + auto upper_bound_hash_str = get_key_hash_view(iter->second, bounds.upper_bound->data(), bounds.upper_bound->size()); + if (lower_bound_hash_str == upper_bound_hash_str) { + auto key = *bounds.lower_bound; + return get_key_cf(iter->second, key.data(), key.size()); + } else { + return nullptr; + } + } } }