[ache_check] hint array damage reporting
This commit is contained in:
parent
ddf5765f9c
commit
be22981a7d
@ -94,7 +94,7 @@ namespace {
|
|||||||
}
|
}
|
||||||
|
|
||||||
virtual void visit(mapping_array_damage::missing_mappings const &d) {
|
virtual void visit(mapping_array_damage::missing_mappings const &d) {
|
||||||
out() << "missing mappings:" << end_message();
|
out() << "missing mappings " << d.keys_ << ":" << end_message();
|
||||||
{
|
{
|
||||||
nested_output::nest _ = push();
|
nested_output::nest _ = push();
|
||||||
out() << d.get_desc() << end_message();
|
out() << d.get_desc() << end_message();
|
||||||
@ -116,13 +116,27 @@ namespace {
|
|||||||
|
|
||||||
mplus_error(FATAL);
|
mplus_error(FATAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
using reporter_base::get_error;
|
||||||
};
|
};
|
||||||
|
|
||||||
class hint_reporter : public reporter_base {
|
class hint_reporter : public hint_array_damage::damage_visitor, reporter_base {
|
||||||
public:
|
public:
|
||||||
hint_reporter(nested_output &o)
|
hint_reporter(nested_output &o)
|
||||||
: reporter_base(o) {
|
: reporter_base(o) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual void visit(hint_array_damage::missing_hints const &d) {
|
||||||
|
out() << "missing mappings " << d.keys_ << ":" << end_message();
|
||||||
|
{
|
||||||
|
nested_output::nest _ = push();
|
||||||
|
out() << d.get_desc() << end_message();
|
||||||
|
}
|
||||||
|
|
||||||
|
mplus_error(FATAL);
|
||||||
|
}
|
||||||
|
|
||||||
|
using reporter_base::get_error;
|
||||||
};
|
};
|
||||||
|
|
||||||
//--------------------------------
|
//--------------------------------
|
||||||
@ -167,8 +181,6 @@ namespace {
|
|||||||
}
|
}
|
||||||
|
|
||||||
error_state metadata_check(block_manager<>::ptr bm, flags const &fs) {
|
error_state metadata_check(block_manager<>::ptr bm, flags const &fs) {
|
||||||
error_state err = NO_ERROR;
|
|
||||||
|
|
||||||
nested_output out(cerr, 2);
|
nested_output out(cerr, 2);
|
||||||
if (fs.quiet_)
|
if (fs.quiet_)
|
||||||
out.disable();
|
out.disable();
|
||||||
@ -194,7 +206,7 @@ namespace {
|
|||||||
{
|
{
|
||||||
nested_output::nest _ = out.push();
|
nested_output::nest _ = out.push();
|
||||||
mapping_array ma(tm, mapping_array::ref_counter(), sb.mapping_root, sb.cache_blocks);
|
mapping_array ma(tm, mapping_array::ref_counter(), sb.mapping_root, sb.cache_blocks);
|
||||||
// check_mapping_array(ma, mapping_rep);
|
check_mapping_array(ma, mapping_rep);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -202,10 +214,14 @@ namespace {
|
|||||||
out << "examining hint array" << end_message();
|
out << "examining hint array" << end_message();
|
||||||
{
|
{
|
||||||
nested_output::nest _ = out.push();
|
nested_output::nest _ = out.push();
|
||||||
|
hint_array ha(tm, sb.policy_hint_size, sb.hint_root, sb.cache_blocks);
|
||||||
|
ha.check(hint_rep);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return err;
|
return combine_errors(sb_rep.get_error(),
|
||||||
|
combine_errors(mapping_rep.get_error(),
|
||||||
|
hint_rep.get_error()));
|
||||||
}
|
}
|
||||||
|
|
||||||
int check(string const &path, flags const &fs) {
|
int check(string const &path, flags const &fs) {
|
||||||
|
@ -257,7 +257,7 @@ hint_array::grow(unsigned new_nr_entries, vector<unsigned char> const &value)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
hint_array::check_hint_array(hint_array_damage::damage_visitor &visitor)
|
hint_array::check(hint_array_damage::damage_visitor &visitor)
|
||||||
{
|
{
|
||||||
check_hints_(width_, impl_, visitor);
|
check_hints_(width_, impl_, visitor);
|
||||||
}
|
}
|
||||||
|
@ -65,7 +65,7 @@ namespace caching {
|
|||||||
void set_hint(unsigned index, vector<unsigned char> const &data);
|
void set_hint(unsigned index, vector<unsigned char> const &data);
|
||||||
|
|
||||||
void grow(unsigned new_nr_entries, vector<unsigned char> const &value);
|
void grow(unsigned new_nr_entries, vector<unsigned char> const &value);
|
||||||
void check_hint_array(hint_array_damage::damage_visitor &visitor);
|
void check(hint_array_damage::damage_visitor &visitor);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
unsigned width_;
|
unsigned width_;
|
||||||
|
Loading…
Reference in New Issue
Block a user