From 84fe3622b887b645ffdb0b110963b89755c3c0f9 Mon Sep 17 00:00:00 2001 From: Ronen Friedman Date: Thu, 2 Dec 2021 13:05:38 +0000 Subject: [PATCH] osd/scrub: cluster-logging unsolicited DigestUpdate events ... and not just to the OSD's log Signed-off-by: Ronen Friedman --- src/osd/scrubber/pg_scrubber.cc | 5 +++++ src/osd/scrubber/pg_scrubber.h | 2 ++ src/osd/scrubber/scrub_machine.cc | 5 ++++- src/osd/scrubber/scrub_machine_lstnr.h | 3 +++ 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/osd/scrubber/pg_scrubber.cc b/src/osd/scrubber/pg_scrubber.cc index 08afd79a7c2bd..a9eb5d5eb9f13 100644 --- a/src/osd/scrubber/pg_scrubber.cc +++ b/src/osd/scrubber/pg_scrubber.cc @@ -2188,6 +2188,11 @@ std::ostream& PgScrubber::gen_prefix(std::ostream& out) const } } +void PgScrubber::log_cluster_warning(const std::string& warning) const +{ + m_osds->clog->do_log(CLOG_WARN, warning); +} + ostream& PgScrubber::show(ostream& out) const { return out << " [ " << m_pg_id << ": " << m_flags << " ] "; diff --git a/src/osd/scrubber/pg_scrubber.h b/src/osd/scrubber/pg_scrubber.h index e9df04d6d0ffd..f03a1f841246e 100644 --- a/src/osd/scrubber/pg_scrubber.h +++ b/src/osd/scrubber/pg_scrubber.h @@ -516,6 +516,8 @@ class PgScrubber : public ScrubPgIF, return m_pg->snap_mapper.get_snaps(hoid, snaps_set); } + void log_cluster_warning(const std::string& warning) const final; + protected: bool state_test(uint64_t m) const { return m_pg->state_test(m); } void state_set(uint64_t m) { m_pg->state_set(m); } diff --git a/src/osd/scrubber/scrub_machine.cc b/src/osd/scrubber/scrub_machine.cc index ba2512735d625..2456bdeb2f249 100644 --- a/src/osd/scrubber/scrub_machine.cc +++ b/src/osd/scrubber/scrub_machine.cc @@ -436,7 +436,10 @@ sc::result WaitReplicas::react(const GotReplicas&) sc::result WaitReplicas::react(const DigestUpdate&) { - dout(10) << "WaitReplicas::react(const DigestUpdate&) - too early" << dendl; + DECLARE_LOCALS; // 'scrbr' & 'pg_id' aliases + auto warn_msg = "WaitReplicas::react(const DigestUpdate&): Unexpected DigestUpdate event"s; + dout(10) << warn_msg << dendl; + scrbr->log_cluster_warning(warn_msg); return discard_event(); } diff --git a/src/osd/scrubber/scrub_machine_lstnr.h b/src/osd/scrubber/scrub_machine_lstnr.h index 942d5271e8c9b..94dbed218b481 100644 --- a/src/osd/scrubber/scrub_machine_lstnr.h +++ b/src/osd/scrubber/scrub_machine_lstnr.h @@ -190,4 +190,7 @@ struct ScrubMachineListener { /// exposed to be used by the scrub_machine logger virtual std::ostream& gen_prefix(std::ostream& out) const = 0; + + /// sending cluster-log warnings + virtual void log_cluster_warning(const std::string& msg) const = 0; }; -- 2.39.5