"size_mismatch_oi",
"ec_hash_error",
"ec_size_error",
- "oi_attr_missing",
- "oi_attr_corrupted",
+ "info_missing",
+ "info_corrupted",
"obj_size_oi_mismatch",
"snapset_missing",
"snapset_corrupted",
"size_mismatch_oi",
"ec_hash_error",
"ec_size_error",
- "oi_attr_missing",
- "oi_attr_corrupted",
+ "info_missing",
+ "info_corrupted",
"obj_size_oi_mismatch",
"snapset_missing",
"snapset_corrupted",
"enum": [
"snapset_missing",
"snapset_corrupted",
- "oi_attr_missing",
- "oi_attr_corrupted",
+ "info_missing",
+ "info_corrupted",
"snapset_mismatch",
"head_mismatch",
"headless",
}
],
"errors": [
- "oi_attr_corrupted"
+ "info_corrupted"
],
"osd": 0,
"primary": false
}
],
"errors": [
- "oi_attr_missing"
+ "info_missing"
],
"osd": 1,
"primary": true
}
],
"union_shard_errors": [
- "oi_attr_missing",
- "oi_attr_corrupted"
+ "info_missing",
+ "info_corrupted"
],
"errors": [],
"object": {
],
"size": 7,
"errors": [
- "oi_attr_missing"
+ "info_missing"
],
"osd": 1,
"primary": true
],
"selected_object_info": "3:30259878:::ROBJ15:head(47'46 osd.0.0:45 dirty|omap|data_digest s 7 uv 45 dd 2ddbf8f5 alloc_hint [0 0 0])",
"union_shard_errors": [
- "oi_attr_missing"
+ "info_missing"
],
"errors": [],
"object": {
"omap_digest": "0x4f14f849",
"size": 7,
"errors": [
- "oi_attr_corrupted"
+ "info_corrupted"
],
"osd": 0,
"primary": false
"omap_digest": "0x4f14f849",
"size": 7,
"errors": [
- "oi_attr_missing"
+ "info_missing"
],
"osd": 1,
"primary": true
}
],
"union_shard_errors": [
- "oi_attr_missing",
- "oi_attr_corrupted"
+ "info_missing",
+ "info_corrupted"
],
"errors": [],
"object": {
"omap_digest": "0x2d2a4d6e",
"size": 7,
"errors": [
- "oi_attr_missing"
+ "info_missing"
],
"osd": 1,
"primary": true
],
"selected_object_info": "3:30259878:::ROBJ15:head(47'46 osd.0.0:45 dirty|omap|data_digest s 7 uv 45 dd 2ddbf8f5 alloc_hint [0 0 0])",
"union_shard_errors": [
- "oi_attr_missing"
+ "info_missing"
],
"errors": [],
"object": {
},
{
"errors": [
- "oi_attr_missing",
+ "info_missing",
"headless"
],
"snap": 7,
errors |= inc_snapset_t::SNAPSET_MISSING;
}
-void inconsistent_snapset_wrapper::set_oi_attr_missing()
+void inconsistent_snapset_wrapper::set_info_missing()
{
- errors |= inc_snapset_t::OI_MISSING;
+ errors |= inc_snapset_t::INFO_MISSING;
}
void inconsistent_snapset_wrapper::set_snapset_corrupted()
errors |= inc_snapset_t::SNAPSET_CORRUPTED;
}
-void inconsistent_snapset_wrapper::set_oi_attr_corrupted()
+void inconsistent_snapset_wrapper::set_info_corrupted()
{
- errors |= inc_snapset_t::OI_CORRUPTED;
+ errors |= inc_snapset_t::INFO_CORRUPTED;
}
void inconsistent_snapset_wrapper::set_clone_missing(snapid_t snap)
void set_ec_size_mismatch() {
errors |= err_t::SHARD_EC_SIZE_MISMATCH;
}
- void set_oi_attr_missing() {
- errors |= err_t::OI_ATTR_MISSING;
+ void set_info_missing() {
+ errors |= err_t::INFO_MISSING;
}
- void set_oi_attr_corrupted() {
- errors |= err_t::OI_ATTR_CORRUPTED;
+ void set_info_corrupted() {
+ errors |= err_t::INFO_CORRUPTED;
}
void set_snapset_missing() {
errors |= err_t::SNAPSET_MISSING;
// soid claims that it is a head or a snapdir, but its SS_ATTR
// is missing.
void set_snapset_missing();
- void set_oi_attr_missing();
+ void set_info_missing();
void set_snapset_corrupted();
- void set_oi_attr_corrupted();
+ void set_info_corrupted();
// snapset with missing clone
void set_clone_missing(snapid_t);
// Clones that are there
SIZE_MISMATCH_OI = 1 << 11,
SHARD_EC_HASH_MISMATCH = 1 << 12,
SHARD_EC_SIZE_MISMATCH = 1 << 13,
- OI_ATTR_MISSING = 1 << 14,
- OI_ATTR_CORRUPTED = 1 << 15,
+ OI_ATTR_MISSING = 1 << 14, // Old
+ INFO_MISSING = 1 << 14,
+ OI_ATTR_CORRUPTED = 1 << 15, // Old
+ INFO_CORRUPTED = 1 << 15,
SS_ATTR_MISSING = 1 << 16, // Old
SNAPSET_MISSING = 1 << 16,
SS_ATTR_CORRUPTED = 1 << 17, // Old
// When adding more here add to either SHALLOW_ERRORS or DEEP_ERRORS
};
uint64_t errors = 0;
- static constexpr uint64_t SHALLOW_ERRORS = SHARD_MISSING|SHARD_STAT_ERR|SIZE_MISMATCH_OI|OI_ATTR_MISSING|OI_ATTR_CORRUPTED|SNAPSET_MISSING|SNAPSET_CORRUPTED|OBJ_SIZE_OI_MISMATCH|HINFO_MISSING|HINFO_CORRUPTED;
+ static constexpr uint64_t SHALLOW_ERRORS = SHARD_MISSING|SHARD_STAT_ERR|SIZE_MISMATCH_OI|INFO_MISSING|INFO_CORRUPTED|SNAPSET_MISSING|SNAPSET_CORRUPTED|OBJ_SIZE_OI_MISMATCH|HINFO_MISSING|HINFO_CORRUPTED;
static constexpr uint64_t DEEP_ERRORS = SHARD_READ_ERR|DATA_DIGEST_MISMATCH_OI|OMAP_DIGEST_MISMATCH_OI|SHARD_EC_HASH_MISMATCH|SHARD_EC_SIZE_MISMATCH;
bool has_shard_missing() const {
return errors & SHARD_MISSING;
bool has_ec_size_error() const {
return errors & SHARD_EC_SIZE_MISMATCH;
}
- bool has_oi_attr_missing() const {
+ bool has_oi_attr_missing() const { // Compatibility
return errors & OI_ATTR_MISSING;
}
- bool has_oi_attr_corrupted() const {
+ bool has_info_missing() const {
+ return errors & INFO_MISSING;
+ }
+ bool has_oi_attr_corrupted() const { // Compatibility
return errors & OI_ATTR_CORRUPTED;
}
+ bool has_info_corrupted() const {
+ return errors & INFO_CORRUPTED;
+ }
bool has_ss_attr_missing() const { // Compatibility
return errors & SS_ATTR_MISSING;
}
HEAD_MISMATCH = 1 << 4,
HEADLESS_CLONE = 1 << 5,
SIZE_MISMATCH = 1 << 6,
- OI_MISSING = 1 << 7,
- OI_CORRUPTED = 1 << 8,
+ OI_MISSING = 1 << 7, // Old
+ INFO_MISSING = 1 << 7,
+ OI_CORRUPTED = 1 << 8, // Old
+ INFO_CORRUPTED = 1 << 8,
EXTRA_CLONES = 1 << 9,
};
uint64_t errors = 0;
bool size_mismatch() const {
return errors & SIZE_MISMATCH;
}
- bool oi_attr_missing() const {
+ bool oi_attr_missing() const { // Compatibility
return errors & OI_MISSING;
}
- bool oi_attr_corrupted() const {
+ bool info_missing() const {
+ return errors & INFO_MISSING;
+ }
+ bool oi_attr_corrupted() const { // Compatibility
return errors & OI_CORRUPTED;
}
+ bool info_corrupted() const {
+ return errors & INFO_CORRUPTED;
+ }
bool extra_clones() const {
return errors & EXTRA_CLONES;
}
k = i->second.attrs.find(OI_ATTR);
if (k == i->second.attrs.end()) {
// no object info on object, probably corrupt
- shard_info.set_oi_attr_missing();
- error_string += " oi_attr_missing";
+ shard_info.set_info_missing();
+ error_string += " info_missing";
goto out;
}
bl.push_back(k->second);
decode(oi, bliter);
} catch (...) {
// invalid object info, probably corrupt
- shard_info.set_oi_attr_corrupted();
- error_string += " oi_attr_corrupted";
+ shard_info.set_info_corrupted();
+ error_string += " info_corrupted";
goto out;
}
osd->clog->error() << mode << " " << info.pgid << " " << soid
<< " no '" << OI_ATTR << "' attr";
++scrubber.shallow_errors;
- soid_error.set_oi_attr_missing();
+ soid_error.set_info_missing();
} else {
bufferlist bv;
bv.push_back(p->second.attrs[OI_ATTR]);
osd->clog->error() << mode << " " << info.pgid << " " << soid
<< " can't decode '" << OI_ATTR << "' attr " << e.what();
++scrubber.shallow_errors;
- soid_error.set_oi_attr_corrupted();
- soid_error.set_oi_attr_missing(); // Not available too
+ soid_error.set_info_corrupted();
+ soid_error.set_info_missing(); // Not available too
}
}
f.dump_string("error", "ec_hash_error");
if (err.has_ec_size_error())
f.dump_string("error", "ec_size_error");
- if (err.has_oi_attr_missing())
- f.dump_string("error", "oi_attr_missing");
- if (err.has_oi_attr_corrupted())
- f.dump_string("error", "oi_attr_corrupted");
+ if (err.has_info_missing())
+ f.dump_string("error", "info_missing");
+ if (err.has_info_corrupted())
+ f.dump_string("error", "info_corrupted");
if (err.has_obj_size_oi_mismatch())
f.dump_string("error", "obj_size_oi_mismatch");
if (err.has_snapset_missing())
f.dump_format("data_digest", "0x%08x", shard.data_digest);
}
- if (!shard.has_oi_attr_missing() && !shard.has_oi_attr_corrupted() &&
+ if (!shard.has_info_missing() && !shard.has_info_corrupted() &&
inc.has_object_info_inconsistency()) {
object_info_t oi;
bufferlist bl;
f.dump_stream("hashinfo") << hi;
}
if (inc.has_attr_name_mismatch() || inc.has_attr_value_mismatch()
- || inc.union_shards.has_oi_attr_missing()
- || inc.union_shards.has_oi_attr_corrupted()
+ || inc.union_shards.has_info_missing()
+ || inc.union_shards.has_info_corrupted()
|| inc.union_shards.has_snapset_missing()
|| inc.union_shards.has_snapset_corrupted()
|| inc.union_shards.has_hinfo_missing()
f.dump_string("error", "snapset_missing");
if (inc.snapset_corrupted())
f.dump_string("error", "snapset_corrupted");
- if (inc.oi_attr_missing())
- f.dump_string("error", "oi_attr_missing");
- if (inc.oi_attr_corrupted())
- f.dump_string("error", "oi_attr_corrupted");
+ if (inc.info_missing())
+ f.dump_string("error", "info_missing");
+ if (inc.info_corrupted())
+ f.dump_string("error", "info_corrupted");
if (inc.snapset_mismatch())
f.dump_string("error", "snapset_mismatch");
if (inc.head_mismatch())