return true;
}
- dout(15) << __func__ << " aborting. incoming epoch: " << epoch_to_verify
+ dout(10) << __func__ << " aborting. incoming epoch: " << epoch_to_verify
<< " vs last-aborted: " << m_last_aborted << dendl;
// if we were not aware of the abort before - kill the scrub.
return;
}
- dout(10) << __func__ << " planned.m.s: " << request_flags.must_scrub
- << ": planned.n.a.: " << request_flags.need_auto
- << " stamp: " << m_pg->info.history.last_scrub_stamp << dendl;
+ dout(10) << __func__ << " planned: must? " << request_flags.must_scrub << " need-auto? "
+ << request_flags.need_auto << " stamp: " << m_pg->info.history.last_scrub_stamp
+ << dendl;
ceph_assert(!is_scrub_registered());
void PgScrubber::unreg_next_scrub()
{
+ dout(10) << __func__ << " existing-" << m_scrub_reg_stamp << ". was registered? "
+ << is_scrub_registered() << dendl;
if (is_scrub_registered()) {
m_osds->unreg_pg_scrub(m_pg->info.pgid, m_scrub_reg_stamp);
m_scrub_reg_stamp = utime_t{};
milliseconds sleep_time{0ms};
if (m_needs_sleep) {
double scrub_sleep = 1000.0 * m_osds->osd->scrub_sleep_time(m_flags.required);
- dout(10) << __func__ << " sleep: " << scrub_sleep << dendl;
sleep_time = milliseconds{long(scrub_sleep)};
}
- dout(15) << __func__ << " sleep: " << sleep_time.count() << " needed? " << m_needs_sleep
- << dendl;
+ dout(15) << __func__ << " sleep: " << sleep_time.count() << "ms. needed? "
+ << m_needs_sleep << dendl;
if (sleep_time.count()) {
// schedule a transition for some 'sleep_time' ms in the future
Scrub::FsmNext PgScrubber::on_digest_updates()
{
- dout(10) << __func__ << " #pending: " << num_digest_updates_pending << " are we done? "
+ dout(10) << __func__ << " #pending: " << num_digest_updates_pending << " pending? "
<< num_digest_updates_pending
<< (m_end.is_max() ? " <last chunk> " : " <mid chunk> ") << dendl;
#include "scrub_machine.h"
#include <chrono>
+#include <typeinfo>
+
+#include <boost/core/demangle.hpp>
#include "OSD.h"
#include "OpRequest.h"
#undef dout_prefix
#define dout_prefix *_dout << " scrubberFSM "
-
using namespace std::chrono;
using namespace std::chrono_literals;
namespace sc = boost::statechart;
void on_event_creation(std::string_view nm)
{
- dout(20) << " scrubberFSM event: --vvvv---- " << nm << dendl;
+ dout(20) << " event: --vvvv---- " << nm << dendl;
}
void on_event_discard(std::string_view nm)
{
- dout(20) << " scrubberFSM event: --^^^^---- " << nm << dendl;
+ dout(20) << " event: --^^^^---- " << nm << dendl;
}
void ScrubMachine::my_states() const
{
for (auto si = state_begin(); si != state_end(); ++si) {
const auto& siw{*si}; // prevents a warning re side-effects
- dout(20) << __func__ << " : scrub-states : " << typeid(siw).name() << dendl;
+ dout(20) << " state: " << boost::core::demangle(typeid(siw).name()) << dendl;
}
}
DECLARE_LOCALS; // 'scrbr' & 'pg_id' aliases
// no need to check for an epoch change, as all possible flows that brought us here have
- // an check_interval() verification of their final event.
+ // a check_interval() verification of their final event.
if (scrbr->get_preemptor().was_preempted()) {