std::size_t &reclaimed,
std::size_t &runs)
{
+ LOG_PREFIX(SegmentCleaner::do_reclaim_space);
auto& shard_stats = extent_callback->get_shard_stats();
if (is_cold) {
++(shard_stats.cleaner_cold_num);
// tree doesn't match the extent's paddr
// 3. the extent is physical and doesn't exist in the
// lba tree, backref tree or backref cache;
- return repeat_eagain([this, &backref_extents, &shard_stats,
+ return repeat_eagain([this, FNAME, &backref_extents, &shard_stats,
&pin_list, &reclaimed, &runs] {
reclaimed = 0;
runs++;
src,
"clean_reclaim_space",
CACHE_HINT_NOCACHE,
- [this, &backref_extents, &pin_list, &reclaimed](auto &t)
+ [this, FNAME, &backref_extents, &pin_list, &reclaimed](auto &t)
{
return seastar::do_with(
std::vector<CachedExtentRef>(backref_extents),
- [this, &t, &reclaimed, &pin_list](auto &extents)
+ [this, FNAME, &t, &reclaimed, &pin_list](auto &extents)
{
LOG_PREFIX(SegmentCleaner::do_reclaim_space);
// calculate live extents
for (auto &cached_backref : cached_backref_entries) {
if (cached_backref.laddr == L_ADDR_NULL) {
auto it = backref_entries.find(cached_backref.paddr);
- assert(it->len == cached_backref.len);
+ if (it->len != cached_backref.len) {
+ ERRORT(
+ "found backref mismatch {}, {}",
+ t, *it, cached_backref);
+ assert(it->len == cached_backref.len);
+ }
backref_entries.erase(it);
} else {
backref_entries.emplace(cached_backref);