if (is_extent_shard_key(it->key())) {
while (!expecting_shards.empty() &&
expecting_shards.front() < it->key()) {
- derr << __func__ << " missing shard key "
+ derr << __func__ << " error: missing shard key "
<< pretty_binary_string(expecting_shards.front())
<< dendl;
++errors;
uint32_t offset;
string okey;
get_key_extent_shard(it->key(), &okey, &offset);
- derr << __func__ << " stray shard 0x" << std::hex << offset << std::dec
- << dendl;
+ derr << __func__ << " error: stray shard 0x" << std::hex << offset
+ << std::dec << dendl;
if (expecting_shards.empty()) {
- derr << __func__ << pretty_binary_string(it->key())
+ derr << __func__ << " error: " << pretty_binary_string(it->key())
<< " is unexpected" << dendl;
++errors;
continue;
}
while (expecting_shards.front() > it->key()) {
- derr << __func__ << " saw " << pretty_binary_string(it->key())
+ derr << __func__ << " error: saw " << pretty_binary_string(it->key())
<< dendl;
- derr << __func__ << " exp "
+ derr << __func__ << " error: exp "
<< pretty_binary_string(expecting_shards.front()) << dendl;
++errors;
expecting_shards.pop_front();
ghobject_t oid;
int r = get_key_object(it->key(), &oid);
if (r < 0) {
- derr << __func__ << " bad object key "
+ derr << __func__ << " error: bad object key "
<< pretty_binary_string(it->key()) << dendl;
++errors;
continue;
}
}
if (!c) {
- derr << __func__ << " stray object " << oid
+ derr << __func__ << " error: stray object " << oid
<< " not owned by any collection" << dendl;
++errors;
continue;
if (!expecting_shards.empty()) {
for (auto &k : expecting_shards) {
- derr << __func__ << " missing shard key "
+ derr << __func__ << " error: missing shard key "
<< pretty_binary_string(k) << dendl;
}
++errors;
OnodeRef o = c->get_onode(oid, false);
if (o->onode.nid) {
if (o->onode.nid > nid_max) {
- derr << __func__ << " " << oid << " nid " << o->onode.nid
+ derr << __func__ << " error: " << oid << " nid " << o->onode.nid
<< " > nid_max " << nid_max << dendl;
++errors;
}
if (used_nids.count(o->onode.nid)) {
- derr << __func__ << " " << oid << " nid " << o->onode.nid
+ derr << __func__ << " error: " << oid << " nid " << o->onode.nid
<< " already in use" << dendl;
++errors;
continue; // go for next object
get_extent_shard_key(o->key, s.shard_info->offset,
&expecting_shards.back());
if (s.shard_info->offset >= o->onode.size) {
- derr << __func__ << " " << oid << " shard 0x" << std::hex
+ derr << __func__ << " error: " << oid << " shard 0x" << std::hex
<< s.shard_info->offset << " past EOF at 0x" << o->onode.size
<< std::dec << dendl;
++errors;
for (auto& l : o->extent_map.extent_map) {
dout(20) << __func__ << " " << l << dendl;
if (l.logical_offset < pos) {
- derr << __func__ << " " << oid << " lextent at 0x"
+ derr << __func__ << " error: " << oid << " lextent at 0x"
<< std::hex << l.logical_offset
<< " overlaps with the previous, which ends at 0x" << pos
<< std::dec << dendl;
++errors;
}
if (o->extent_map.spans_shard(l.logical_offset, l.length)) {
- derr << __func__ << " " << oid << " lextent at 0x"
+ derr << __func__ << " error: " << oid << " lextent at 0x"
<< std::hex << l.logical_offset << "~" << l.length
<< " spans a shard boundary"
<< std::dec << dendl;
const bluestore_blob_t& blob = i.first->get_blob();
bool equal = i.first->get_blob_use_tracker().equal(i.second);
if (!equal) {
- derr << __func__ << " " << oid << " blob " << *i.first
+ derr << __func__ << " error: " << oid << " blob " << *i.first
<< " doesn't match expected ref_map " << i.second << dendl;
++errors;
}
}
if (blob.is_shared()) {
if (i.first->shared_blob->get_sbid() > blobid_max) {
- derr << __func__ << " " << oid << " blob " << blob
+ derr << __func__ << " error: " << oid << " blob " << blob
<< " sbid " << i.first->shared_blob->get_sbid() << " > blobid_max "
<< blobid_max << dendl;
++errors;
} else if (i.first->shared_blob->get_sbid() == 0) {
- derr << __func__ << " " << oid << " blob " << blob
+ derr << __func__ << " error: " << oid << " blob " << blob
<< " marked as shared but has uninitialized sbid"
<< dendl;
++errors;
int r = _do_read(c.get(), o, 0, o->onode.size, bl, 0);
if (r < 0) {
++errors;
- derr << __func__ << " " << oid << " error during read: "
+ derr << __func__ << " error: " << oid << " error during read: "
<< cpp_strerror(r) << dendl;
}
}
// omap
if (o->onode.has_omap()) {
if (used_omap_head.count(o->onode.nid)) {
- derr << __func__ << " " << oid << " omap_head " << o->onode.nid
+ derr << __func__ << " error: " << oid << " omap_head " << o->onode.nid
<< " already in use" << dendl;
++errors;
} else {
string key = it->key();
uint64_t sbid;
if (get_key_shared_blob(key, &sbid)) {
- derr << __func__ << " bad key '" << key << "' in shared blob namespace"
- << dendl;
+ derr << __func__ << " error: bad key '" << key
+ << "' in shared blob namespace" << dendl;
++errors;
continue;
}
auto p = sb_info.find(sbid);
if (p == sb_info.end()) {
- derr << __func__ << " found stray shared blob data for sbid 0x"
+ derr << __func__ << " error: found stray shared blob data for sbid 0x"
<< std::hex << sbid << std::dec << dendl;
++errors;
} else {
::decode(shared_blob, blp);
dout(20) << __func__ << " " << *sbi.sb << " " << shared_blob << dendl;
if (shared_blob.ref_map != sbi.ref_map) {
- derr << __func__ << " shared blob 0x" << std::hex << sbid << std::dec
- << " ref_map " << shared_blob.ref_map << " != expected "
- << sbi.ref_map << dendl;
+ derr << __func__ << " error: shared blob 0x" << std::hex << sbid
+ << std::dec << " ref_map " << shared_blob.ref_map
+ << " != expected " << sbi.ref_map << dendl;
++errors;
}
PExtentVector extents;
}
}
for (auto &p : sb_info) {
- derr << __func__ << " shared_blob 0x" << p.first << " key is missing ("
- << *p.second.sb << ")" << dendl;
+ derr << __func__ << " error: shared_blob 0x" << p.first
+ << " key is missing (" << *p.second.sb << ")" << dendl;
++errors;
}
if (!(actual_statfs == expected_statfs)) {
- derr << __func__ << " actual " << actual_statfs
+ derr << __func__ << " error: actual " << actual_statfs
<< " != expected " << expected_statfs << dendl;
++errors;
}
uint64_t omap_head;
_key_decode_u64(it->key().c_str(), &omap_head);
if (used_omap_head.count(omap_head) == 0) {
- derr << __func__ << " found stray omap data on omap_head " << omap_head
- << dendl;
+ derr << __func__ << " error: found stray omap data on omap_head "
+ << omap_head << dendl;
++errors;
}
}
try {
::decode(wt, p);
} catch (buffer::error& e) {
- derr << __func__ << " failed to decode deferred txn "
+ derr << __func__ << " error: failed to decode deferred txn "
<< pretty_binary_string(it->key()) << dendl;
r = -EIO;
goto out_scan;
}
);
if (intersects) {
- derr << __func__ << " free extent 0x" << std::hex << offset
+ derr << __func__ << " error: free extent 0x" << std::hex << offset
<< "~" << length << std::dec
<< " intersects allocated blocks" << dendl;
++errors;
size_t count = used_blocks.count();
if (used_blocks.size() != count) {
assert(used_blocks.size() > count);
- derr << __func__ << " leaked some space;"
+ derr << __func__ << " error: leaked some space;"
<< (used_blocks.size() - count) * min_alloc_size
<< " bytes leaked" << dendl;
++errors;