From: John Spray Date: Wed, 25 Oct 2017 13:39:15 +0000 (-0400) Subject: mds: clean up clog damage message when repairing X-Git-Tag: v12.2.3~17^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=798cc37c7a2acb4af182bdc7b214c4c7445645d0;p=ceph.git mds: clean up clog damage message when repairing If we've repaired then we don't need to be at WRN and we don't need to advise the user to look up the damage detail. Signed-off-by: John Spray (cherry picked from commit 3160ef2c0a66324621a95926bed0416bbd537353) --- diff --git a/src/mds/CInode.cc b/src/mds/CInode.cc index 39d41547f92..2064eb9fe9e 100644 --- a/src/mds/CInode.cc +++ b/src/mds/CInode.cc @@ -4095,6 +4095,7 @@ next: dir->scrub_infop->pending_scrub_error) { dir->scrub_infop->pending_scrub_error = false; if (dir->scrub_infop->header->get_repair()) { + results->raw_stats.repaired = true; results->raw_stats.error_str << "dirfrag(" << p->first << ") has bad stats (will be fixed); "; } else { @@ -4113,6 +4114,7 @@ next: results->raw_stats.error_str << "freshly-calculated rstats don't match existing ones (will be fixed)"; in->mdcache->repair_inode_stats(in); + results->raw_stats.repaired = true; } else { results->raw_stats.error_str << "freshly-calculated rstats don't match existing ones"; @@ -4187,6 +4189,18 @@ void CInode::validated_data::dump(Formatter *f) const f->close_section(); // results } +bool CInode::validated_data::all_damage_repaired() const +{ + bool unrepaired = + (raw_stats.checked && !raw_stats.passed && !raw_stats.repaired) + || + (backtrace.checked && !backtrace.passed && !backtrace.repaired) + || + (inode.checked && !inode.passed && !inode.repaired); + + return !unrepaired; +} + void CInode::dump(Formatter *f) const { InodeStoreBase::dump(f); diff --git a/src/mds/CInode.h b/src/mds/CInode.h index 060ba505a19..6922ee989cf 100644 --- a/src/mds/CInode.h +++ b/src/mds/CInode.h @@ -1132,6 +1132,8 @@ public: passed_validation(false) {} void dump(Formatter *f) const; + + bool all_damage_repaired() const; }; /** diff --git a/src/mds/ScrubStack.cc b/src/mds/ScrubStack.cc index 83ae53abe33..cb31a93f0fd 100644 --- a/src/mds/ScrubStack.cc +++ b/src/mds/ScrubStack.cc @@ -396,9 +396,14 @@ void ScrubStack::_validate_inode_done(CInode *in, int r, // Inform the cluster log if we found an error if (!result.passed_validation) { - clog->warn() << "Scrub error on inode " << in->ino() - << " (" << path << ") see " << g_conf->name - << " log and `damage ls` output for details"; + if (result.all_damage_repaired()) { + clog->info() << "Scrub repaired inode " << in->ino() + << " (" << path << ")"; + } else { + clog->warn() << "Scrub error on inode " << in->ino() + << " (" << path << ") see " << g_conf->name + << " log and `damage ls` output for details"; + } // Put the verbose JSON output into the MDS log for later inspection JSONFormatter f;