]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/pg_scrubber: do not print log in dtors 38860/head
authorKefu Chai <kchai@redhat.com>
Tue, 12 Jan 2021 05:48:53 +0000 (13:48 +0800)
committerKefu Chai <kchai@redhat.com>
Tue, 12 Jan 2021 14:38:04 +0000 (22:38 +0800)
PG::recovery_state is defined after PG::m_scrubber, while
PG::gen_prefix() retrieves the osdmap from recovery_state. in
PgScrubber::~PgScrubber(), we print out the osdmap by dereferencing
recovery_state for the prefix of the logging message. in other words,
PgScrubber's destructor is referencing "recovery_state" which is
already destroyed.

in this change, the logging messages are removed from dtors. we can
print out the pgid in a follow-up PR if it helps.

Fixes: https://tracker.ceph.com/issues/48777
Signed-off-by: Kefu Chai <kchai@redhat.com>
src/osd/pg_scrubber.cc
src/osd/scrub_machine.cc

index a7501da146c27e6f6aa9a20c4544156807796624..5c9d3b8e4492b0e1da1f5e8552bf15b8080a18b5 100644 (file)
@@ -1790,10 +1790,7 @@ void PgScrubber::handle_query_state(ceph::Formatter* f)
   f->close_section();
 }
 
-PgScrubber::~PgScrubber()
-{
-  dout(10) << __func__ << dendl;
-}
+PgScrubber::~PgScrubber() = default;
 
 PgScrubber::PgScrubber(PG* pg)
     : m_pg{pg}
@@ -2041,8 +2038,6 @@ ReplicaReservations::~ReplicaReservations()
   // send un-reserve messages to all reserved replicas. We do not wait for answer (there
   // wouldn't be one). Other incoming messages will be discarded on the way, by our
   // owner.
-  dout(10) << __func__ << " " << m_reserved_peers << dendl;
-
   epoch_t epoch = m_pg->get_osdmap_epoch();
 
   for (auto& p : m_reserved_peers) {
@@ -2149,7 +2144,6 @@ LocalReservation::~LocalReservation()
   if (m_holding_local_reservation) {
     m_holding_local_reservation = false;
     m_osds->dec_scrubs_local();
-    dout(20) << __func__ << ": local OSD scrub resources freed" << dendl;
   }
 }
 
@@ -2179,7 +2173,6 @@ ReservedByRemotePrimary::~ReservedByRemotePrimary()
   if (m_reserved_by_remote_primary) {
     m_reserved_by_remote_primary = false;
     m_osds->dec_scrubs_remote();
-    dout(20) << __func__ << ": scrub resources held for Primary were freed" << dendl;
   }
 }
 
index 42133450d7e09e9c1c814d3fed6036af60cebc74..271e1362fc778d18981bae5cf9f29c36335605b5 100644 (file)
@@ -413,10 +413,7 @@ ScrubMachine::ScrubMachine(PG* pg, ScrubMachineListener* pg_scrub)
   dout(15) << "ScrubMachine created " << m_pg_id << dendl;
 }
 
-ScrubMachine::~ScrubMachine()
-{
-  dout(20) << "~ScrubMachine " << m_pg_id << dendl;
-}
+ScrubMachine::~ScrubMachine() = default;
 
 // -------- for replicas -----------------------------------------------------