PeeringState *ps = context< PeeringMachine >().state; \
std::ignore = ps; \
PeeringListener *pl = context< PeeringMachine >().pl; \
- std::ignore = pl;
+ std::ignore = pl
/*------Crashed-------*/
boost::statechart::result PeeringState::Initial::react(const MNotifyRec& notify)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ps->proc_replica_info(
notify.from, notify.notify.info, notify.notify.epoch_sent);
ps->set_last_peering_reset();
boost::statechart::result PeeringState::Initial::react(const MInfoRec& i)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ceph_assert(!ps->is_primary());
post_event(i);
return transit< Stray >();
boost::statechart::result PeeringState::Initial::react(const MLogRec& i)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ceph_assert(!ps->is_primary());
post_event(i);
return transit< Stray >();
void PeeringState::Initial::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
utime_t dur = ceph_clock_now() - enter_time;
pl->get_peering_perf().tinc(rs_initial_latency, dur);
}
boost::statechart::result PeeringState::Started::react(const AdvMap& advmap)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
psdout(10) << "Started advmap" << dendl;
ps->check_full_transition(advmap.lastmap, advmap.osdmap);
if (ps->should_restart_peering(
void PeeringState::Started::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
utime_t dur = ceph_clock_now() - enter_time;
pl->get_peering_perf().tinc(rs_started_latency, dur);
}
NamedState(context< PeeringMachine >().state_history, "Reset")
{
context< PeeringMachine >().log_enter(state_name);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ps->flushes_in_progress = 0;
ps->set_last_peering_reset();
boost::statechart::result PeeringState::Reset::react(const AdvMap& advmap)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
psdout(10) << "Reset advmap" << dendl;
ps->check_full_transition(advmap.lastmap, advmap.osdmap);
boost::statechart::result PeeringState::Reset::react(const ActMap&)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
if (ps->should_send_notify() && ps->get_primary().osd >= 0) {
context< PeeringMachine >().send_notify(
ps->get_primary(),
void PeeringState::Reset::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
utime_t dur = ceph_clock_now() - enter_time;
pl->get_peering_perf().tinc(rs_reset_latency, dur);
}
{
context< PeeringMachine >().log_enter(state_name);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
if (ps->is_primary()) {
psdout(1) << "transitioning to Primary" << dendl;
post_event(MakePrimary());
void PeeringState::Start::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
utime_t dur = ceph_clock_now() - enter_time;
pl->get_peering_perf().tinc(rs_start_latency, dur);
}
NamedState(context< PeeringMachine >().state_history, "Started/Primary")
{
context< PeeringMachine >().log_enter(state_name);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ceph_assert(ps->want_acting.empty());
// set CREATING bit until we have peered for the first time.
boost::statechart::result PeeringState::Primary::react(const MNotifyRec& notevt)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
psdout(7) << "handle_pg_notify from osd." << notevt.from << dendl;
ps->proc_replica_info(
notevt.from, notevt.notify.info, notevt.notify.epoch_sent);
boost::statechart::result PeeringState::Primary::react(const ActMap&)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
psdout(7) << "handle ActMap primary" << dendl;
pl->publish_stats_to_osd();
return discard_event();
boost::statechart::result PeeringState::Primary::react(
const SetForceRecovery&)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ps->set_force_recovery(true);
return discard_event();
}
boost::statechart::result PeeringState::Primary::react(
const UnsetForceRecovery&)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ps->set_force_recovery(false);
return discard_event();
}
boost::statechart::result PeeringState::Primary::react(
const RequestScrub& evt)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
if (ps->is_primary()) {
pl->scrub_requested(evt.deep, evt.repair);
psdout(10) << "marking for scrub" << dendl;
boost::statechart::result PeeringState::Primary::react(
const SetForceBackfill&)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ps->set_force_backfill(true);
return discard_event();
}
boost::statechart::result PeeringState::Primary::react(
const UnsetForceBackfill&)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ps->set_force_backfill(false);
return discard_event();
}
void PeeringState::Primary::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ps->want_acting.clear();
utime_t dur = ceph_clock_now() - enter_time;
pl->get_peering_perf().tinc(rs_primary_latency, dur);
history_les_bound(false)
{
context< PeeringMachine >().log_enter(state_name);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ceph_assert(!ps->is_peered());
ceph_assert(!ps->is_peering());
boost::statechart::result PeeringState::Peering::react(const AdvMap& advmap)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
psdout(10) << "Peering advmap" << dendl;
if (prior_set.affected_by_map(*(advmap.osdmap), ps->dpp)) {
psdout(1) << "Peering, affected_by_map, going to Reset" << dendl;
boost::statechart::result PeeringState::Peering::react(const QueryState& q)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
q.f->open_object_section("state");
q.f->dump_string("name", state_name);
void PeeringState::Peering::exit()
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
psdout(10) << "Leaving Peering" << dendl;
context< PeeringMachine >().log_exit(state_name, enter_time);
ps->state_clear(PG_STATE_PEERING);
context< PeeringMachine >().log_enter(state_name);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ps->backfill_reserved = true;
pl->on_backfill_reserved();
ps->state_clear(PG_STATE_BACKFILL_TOOFULL);
void PeeringState::Backfilling::backfill_release_reservations()
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
pl->cancel_local_background_io_reservation();
for (set<pg_shard_t>::iterator it = ps->backfill_targets.begin();
it != ps->backfill_targets.end();
void PeeringState::Backfilling::cancel_backfill()
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
backfill_release_reservations();
pl->on_backfill_canceled();
}
boost::statechart::result
PeeringState::Backfilling::react(const DeferBackfill &c)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
psdout(10) << "defer backfill, retry delay " << c.delay << dendl;
ps->state_set(PG_STATE_BACKFILL_WAIT);
boost::statechart::result
PeeringState::Backfilling::react(const UnfoundBackfill &c)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
psdout(10) << "backfill has unfound, can't continue" << dendl;
ps->state_set(PG_STATE_BACKFILL_UNFOUND);
ps->state_clear(PG_STATE_BACKFILLING);
boost::statechart::result
PeeringState::Backfilling::react(const RemoteReservationRevokedTooFull &)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ps->state_set(PG_STATE_BACKFILL_TOOFULL);
ps->state_clear(PG_STATE_BACKFILLING);
boost::statechart::result
PeeringState::Backfilling::react(const RemoteReservationRevoked &)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ps->state_set(PG_STATE_BACKFILL_WAIT);
cancel_backfill();
if (ps->needs_backfill()) {
void PeeringState::Backfilling::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ps->backfill_reserved = false;
ps->state_clear(PG_STATE_BACKFILLING);
ps->state_clear(PG_STATE_FORCED_BACKFILL | PG_STATE_FORCED_RECOVERY);
backfill_osd_it(context< Active >().remote_shards_to_reserve_backfill.begin())
{
context< PeeringMachine >().log_enter(state_name);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ps->state_set(PG_STATE_BACKFILL_WAIT);
pl->publish_stats_to_osd();
boost::statechart::result
PeeringState::WaitRemoteBackfillReserved::react(const RemoteBackfillReserved &evt)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
int64_t num_bytes = ps->info.stats.stats.sum.num_bytes;
psdout(10) << __func__ << " num_bytes " << num_bytes << dendl;
void PeeringState::WaitRemoteBackfillReserved::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
utime_t dur = ceph_clock_now() - enter_time;
pl->get_peering_perf().tinc(rs_waitremotebackfillreserved_latency, dur);
void PeeringState::WaitRemoteBackfillReserved::retry()
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
pl->cancel_local_background_io_reservation();
// Send CANCEL to all previously acquired reservations
NamedState(context< PeeringMachine >().state_history, "Started/Primary/Active/WaitLocalBackfillReserved")
{
context< PeeringMachine >().log_enter(state_name);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ps->state_set(PG_STATE_BACKFILL_WAIT);
pl->request_local_background_io_reservation(
void PeeringState::WaitLocalBackfillReserved::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
utime_t dur = ceph_clock_now() - enter_time;
pl->get_peering_perf().tinc(rs_waitlocalbackfillreserved_latency, dur);
}
NamedState(context< PeeringMachine >().state_history, "Started/Primary/Active/NotBackfilling")
{
context< PeeringMachine >().log_enter(state_name);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ps->state_clear(PG_STATE_REPAIR);
pl->publish_stats_to_osd();
}
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ps->state_clear(PG_STATE_BACKFILL_UNFOUND);
utime_t dur = ceph_clock_now() - enter_time;
pl->get_peering_perf().tinc(rs_notbackfilling_latency, dur);
NamedState(context< PeeringMachine >().state_history, "Started/Primary/Active/NotRecovering")
{
context< PeeringMachine >().log_enter(state_name);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
pl->publish_stats_to_osd();
}
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ps->state_clear(PG_STATE_RECOVERY_UNFOUND);
utime_t dur = ceph_clock_now() - enter_time;
pl->get_peering_perf().tinc(rs_notrecovering_latency, dur);
boost::statechart::result
PeeringState::RepNotRecovering::react(const RejectRemoteReservation &evt)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ps->reject_reservation();
post_event(RemoteReservationRejected());
return discard_event();
void PeeringState::RepNotRecovering::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
utime_t dur = ceph_clock_now() - enter_time;
pl->get_peering_perf().tinc(rs_repnotrecovering_latency, dur);
}
boost::statechart::result
PeeringState::RepWaitRecoveryReserved::react(const RemoteRecoveryReserved &evt)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
pl->send_cluster_message(
ps->primary.osd,
new MRecoveryReserve(
PeeringState::RepWaitRecoveryReserved::react(
const RemoteReservationCanceled &evt)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
pl->unreserve_recovery_space();
pl->cancel_remote_recovery_reservation();
void PeeringState::RepWaitRecoveryReserved::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
utime_t dur = ceph_clock_now() - enter_time;
pl->get_peering_perf().tinc(rs_repwaitrecoveryreserved_latency, dur);
}
PeeringState::RepNotRecovering::react(const RequestBackfillPrio &evt)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
if (!pl->try_reserve_recovery_space(
evt.primary_num_bytes, evt.local_num_bytes)) {
boost::statechart::result
PeeringState::RepNotRecovering::react(const RequestRecoveryPrio &evt)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
// fall back to a local reckoning of priority of primary doesn't pass one
// (pre-mimic compat)
void PeeringState::RepWaitBackfillReserved::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
utime_t dur = ceph_clock_now() - enter_time;
pl->get_peering_perf().tinc(rs_repwaitbackfillreserved_latency, dur);
}
boost::statechart::result
PeeringState::RepWaitBackfillReserved::react(const RemoteBackfillReserved &evt)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
pl->send_cluster_message(
PeeringState::RepWaitBackfillReserved::react(
const RejectRemoteReservation &evt)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ps->reject_reservation();
post_event(RemoteReservationRejected());
return discard_event();
PeeringState::RepWaitBackfillReserved::react(
const RemoteReservationRejected &evt)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
pl->unreserve_recovery_space();
pl->cancel_remote_recovery_reservation();
PeeringState::RepWaitBackfillReserved::react(
const RemoteReservationCanceled &evt)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
pl->unreserve_recovery_space();
pl->cancel_remote_recovery_reservation();
boost::statechart::result
PeeringState::RepRecovering::react(const RemoteRecoveryPreempted &)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
pl->unreserve_recovery_space();
boost::statechart::result
PeeringState::RepRecovering::react(const BackfillTooFull &)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
pl->unreserve_recovery_space();
boost::statechart::result
PeeringState::RepRecovering::react(const RemoteBackfillPreempted &)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
pl->unreserve_recovery_space();
void PeeringState::RepRecovering::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
pl->unreserve_recovery_space();
pl->cancel_remote_recovery_reservation();
void PeeringState::Activating::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
utime_t dur = ceph_clock_now() - enter_time;
pl->get_peering_perf().tinc(rs_activating_latency, dur);
}
NamedState(context< PeeringMachine >().state_history, "Started/Primary/Active/WaitLocalRecoveryReserved")
{
context< PeeringMachine >().log_enter(state_name);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
// Make sure all nodes that part of the recovery aren't full
if (!ps->cct->_conf->osd_debug_skip_full_check_in_recovery &&
boost::statechart::result
PeeringState::WaitLocalRecoveryReserved::react(const RecoveryTooFull &evt)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ps->state_set(PG_STATE_RECOVERY_TOOFULL);
pl->schedule_event_after(
std::make_shared<PGPeeringEvent>(
void PeeringState::WaitLocalRecoveryReserved::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
utime_t dur = ceph_clock_now() - enter_time;
pl->get_peering_perf().tinc(rs_waitlocalrecoveryreserved_latency, dur);
}
boost::statechart::result
PeeringState::WaitRemoteRecoveryReserved::react(const RemoteRecoveryReserved &evt) {
- DECLARE_LOCALS
+ DECLARE_LOCALS;
if (remote_recovery_reservation_it !=
context< Active >().remote_shards_to_reserve_recovery.end()) {
void PeeringState::WaitRemoteRecoveryReserved::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
utime_t dur = ceph_clock_now() - enter_time;
pl->get_peering_perf().tinc(rs_waitremoterecoveryreserved_latency, dur);
}
{
context< PeeringMachine >().log_enter(state_name);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ps->state_clear(PG_STATE_RECOVERY_WAIT);
ps->state_clear(PG_STATE_RECOVERY_TOOFULL);
ps->state_set(PG_STATE_RECOVERING);
void PeeringState::Recovering::release_reservations(bool cancel)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ceph_assert(cancel || !ps->pg_log.get_missing().have_missing());
// release remote reservations
boost::statechart::result
PeeringState::Recovering::react(const AllReplicasRecovered &evt)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ps->state_clear(PG_STATE_FORCED_RECOVERY);
release_reservations();
pl->cancel_local_background_io_reservation();
boost::statechart::result
PeeringState::Recovering::react(const RequestBackfill &evt)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
release_reservations();
boost::statechart::result
PeeringState::Recovering::react(const DeferRecovery &evt)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
if (!ps->state_test(PG_STATE_RECOVERING)) {
// we may have finished recovery and have an AllReplicasRecovered
// event queued to move us to the next state.
boost::statechart::result
PeeringState::Recovering::react(const UnfoundRecovery &evt)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
psdout(10) << "recovery has unfound, can't continue" << dendl;
ps->state_set(PG_STATE_RECOVERY_UNFOUND);
pl->cancel_local_background_io_reservation();
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
utime_t dur = ceph_clock_now() - enter_time;
ps->state_clear(PG_STATE_RECOVERING);
pl->get_peering_perf().tinc(rs_recovering_latency, dur);
context< PeeringMachine >().log_enter(state_name);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ceph_assert(!ps->needs_recovery());
void PeeringState::Recovered::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
utime_t dur = ceph_clock_now() - enter_time;
pl->get_peering_perf().tinc(rs_recovered_latency, dur);
{
context< PeeringMachine >().log_enter(state_name);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
if (ps->info.last_complete != ps->info.last_update) {
ceph_abort();
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ps->state_clear(PG_STATE_CLEAN);
utime_t dur = ceph_clock_now() - enter_time;
pl->get_peering_perf().tinc(rs_clean_latency, dur);
context< PeeringMachine >().log_enter(state_name);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ceph_assert(!ps->backfill_reserved);
ceph_assert(ps->is_primary());
boost::statechart::result PeeringState::Active::react(const AdvMap& advmap)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
if (ps->should_restart_peering(
advmap.up_primary,
boost::statechart::result PeeringState::Active::react(const ActMap&)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
psdout(10) << "Active: handling ActMap" << dendl;
ceph_assert(ps->is_primary());
boost::statechart::result PeeringState::Active::react(const MNotifyRec& notevt)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ceph_assert(ps->is_primary());
if (ps->peer_info.count(notevt.from)) {
psdout(10) << "Active: got notify from " << notevt.from
boost::statechart::result PeeringState::Active::react(const MTrim& trim)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ceph_assert(ps->is_primary());
// peer is informing us of their last_complete_ondisk
boost::statechart::result PeeringState::Active::react(const MInfoRec& infoevt)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ceph_assert(ps->is_primary());
ceph_assert(!ps->acting_recovery_backfill.empty());
boost::statechart::result PeeringState::Active::react(const MLogRec& logevt)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
psdout(10) << "searching osd." << logevt.from
<< " log for unfound items" << dendl;
ps->proc_replica_log(
boost::statechart::result PeeringState::Active::react(const QueryState& q)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
q.f->open_object_section("state");
q.f->dump_string("name", state_name);
boost::statechart::result PeeringState::Active::react(
const ActivateCommitted &evt)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ceph_assert(!ps->peer_activated.count(ps->pg_whoami));
ps->peer_activated.insert(ps->pg_whoami);
psdout(10) << "_activate_committed " << evt.epoch
boost::statechart::result PeeringState::Active::react(const AllReplicasActivated &evt)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
pg_t pgid = context< PeeringMachine >().spgid.pgid;
all_replicas_activated = true;
*/
void PeeringState::Active::all_activated_and_committed()
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
psdout(10) << "all_activated_and_committed" << dendl;
ceph_assert(ps->is_primary());
ceph_assert(ps->peer_activated.size() == ps->acting_recovery_backfill.size());
context< PeeringMachine >().log_exit(state_name, enter_time);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
pl->cancel_local_background_io_reservation();
ps->blocked_by.clear();
{
context< PeeringMachine >().log_enter(state_name);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ps->start_flush(context< PeeringMachine >().get_cur_transaction());
}
boost::statechart::result PeeringState::ReplicaActive::react(
const Activate& actevt) {
- DECLARE_LOCALS
+ DECLARE_LOCALS;
psdout(10) << "In ReplicaActive, about to call activate" << dendl;
map<int, map<spg_t, pg_query_t> > query_map;
ps->activate(
boost::statechart::result PeeringState::ReplicaActive::react(
const ActivateCommitted &evt)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
psdout(10) << "_activate_committed " << evt.epoch
<< " telling primary" << dendl;
MOSDPGInfo *m = new MOSDPGInfo(evt.epoch);
boost::statechart::result PeeringState::ReplicaActive::react(const MInfoRec& infoevt)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ps->proc_primary_info(context<PeeringMachine>().get_cur_transaction(),
infoevt.info);
return discard_event();
boost::statechart::result PeeringState::ReplicaActive::react(const MLogRec& logevt)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
psdout(10) << "received log from " << logevt.from << dendl;
ObjectStore::Transaction &t = context<PeeringMachine>().get_cur_transaction();
ps->merge_log(t, logevt.msg->info, logevt.msg->log, logevt.from);
boost::statechart::result PeeringState::ReplicaActive::react(const MTrim& trim)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
// primary is instructing us to trim
ps->pg_log.trim(trim.trim_to, ps->info);
ps->dirty_info = true;
boost::statechart::result PeeringState::ReplicaActive::react(const ActMap&)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
if (ps->should_send_notify() && ps->get_primary().osd >= 0) {
context< PeeringMachine >().send_notify(
ps->get_primary(),
boost::statechart::result PeeringState::ReplicaActive::react(
const MQuery& query)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ps->fulfill_query(query, context<PeeringMachine>().get_recovery_ctx());
return discard_event();
}
void PeeringState::ReplicaActive::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
pl->unreserve_recovery_space();
pl->cancel_remote_recovery_reservation();
context< PeeringMachine >().log_enter(state_name);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ceph_assert(!ps->is_peered());
ceph_assert(!ps->is_peering());
ceph_assert(!ps->is_primary());
boost::statechart::result PeeringState::Stray::react(const MLogRec& logevt)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
MOSDPGLog *msg = logevt.msg.get();
psdout(10) << "got info+log from osd." << logevt.from << " " << msg->info << " " << msg->log << dendl;
boost::statechart::result PeeringState::Stray::react(const MInfoRec& infoevt)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
psdout(10) << "got info from osd." << infoevt.from << " " << infoevt.info << dendl;
if (ps->info.last_update > infoevt.info.last_update) {
boost::statechart::result PeeringState::Stray::react(const MQuery& query)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ps->fulfill_query(query, context<PeeringMachine>().get_recovery_ctx());
return discard_event();
}
boost::statechart::result PeeringState::Stray::react(const ActMap&)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
if (ps->should_send_notify() && ps->get_primary().osd >= 0) {
context< PeeringMachine >().send_notify(
ps->get_primary(),
void PeeringState::Stray::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
utime_t dur = ceph_clock_now() - enter_time;
pl->get_peering_perf().tinc(rs_stray_latency, dur);
}
NamedState(context< PeeringMachine >().state_history, "Started/ToDelete")
{
context< PeeringMachine >().log_enter(state_name);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
pl->get_perf_logger().inc(l_osd_pg_removing);
}
void PeeringState::ToDelete::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
// note: on a successful removal, this path doesn't execute. see
// _delete_some().
pl->get_perf_logger().dec(l_osd_pg_removing);
"Started/ToDelete/WaitDeleteReseved")
{
context< PeeringMachine >().log_enter(state_name);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
context< ToDelete >().priority = ps->get_delete_priority();
pl->cancel_local_background_io_reservation();
boost::statechart::result PeeringState::ToDelete::react(
const ActMap& evt)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
if (ps->get_delete_priority() != priority) {
psdout(10) << __func__ << " delete priority changed, resetting"
<< dendl;
NamedState(context< PeeringMachine >().state_history, "Started/ToDelete/Deleting")
{
context< PeeringMachine >().log_enter(state_name);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ps->deleting = true;
ObjectStore::Transaction &t = context<PeeringMachine>().get_cur_transaction();
boost::statechart::result PeeringState::Deleting::react(
const DeleteSome& evt)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
pl->do_delete_work(context<PeeringMachine>().get_cur_transaction());
return discard_event();
}
void PeeringState::Deleting::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ps->deleting = false;
pl->cancel_local_background_io_reservation();
}
context< PeeringMachine >().log_enter(state_name);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ps->check_past_interval_bounds();
PastIntervals::PriorSet &prior_set = context< Peering >().prior_set;
void PeeringState::GetInfo::get_infos()
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
PastIntervals::PriorSet &prior_set = context< Peering >().prior_set;
ps->blocked_by.clear();
boost::statechart::result PeeringState::GetInfo::react(const MNotifyRec& infoevt)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
set<pg_shard_t>::iterator p = peer_info_requested.find(infoevt.from);
if (p != peer_info_requested.end()) {
boost::statechart::result PeeringState::GetInfo::react(const QueryState& q)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
q.f->open_object_section("state");
q.f->dump_string("name", state_name);
q.f->dump_stream("enter_time") << enter_time;
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
utime_t dur = ceph_clock_now() - enter_time;
pl->get_peering_perf().tinc(rs_getinfo_latency, dur);
ps->blocked_by.clear();
{
context< PeeringMachine >().log_enter(state_name);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
// adjust acting?
if (!ps->choose_acting(auth_log_shard, false,
boost::statechart::result PeeringState::GetLog::react(const GotLog&)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
psdout(10) << "leaving GetLog" << dendl;
if (msg) {
psdout(10) << "processing master log" << dendl;
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
utime_t dur = ceph_clock_now() - enter_time;
pl->get_peering_perf().tinc(rs_getlog_latency, dur);
ps->blocked_by.clear();
boost::statechart::result PeeringState::WaitActingChange::react(const AdvMap& advmap)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
OSDMapRef osdmap = advmap.osdmap;
psdout(10) << "verifying no want_acting " << ps->want_acting << " targets didn't go down" << dendl;
void PeeringState::WaitActingChange::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
utime_t dur = ceph_clock_now() - enter_time;
pl->get_peering_perf().tinc(rs_waitactingchange_latency, dur);
}
NamedState(context< PeeringMachine >().state_history, "Started/Primary/Peering/Down")
{
context< PeeringMachine >().log_enter(state_name);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ps->state_clear(PG_STATE_PEERING);
ps->state_set(PG_STATE_DOWN);
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ps->state_clear(PG_STATE_DOWN);
utime_t dur = ceph_clock_now() - enter_time;
boost::statechart::result PeeringState::Down::react(const MNotifyRec& infoevt)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ceph_assert(ps->is_primary());
epoch_t old_start = ps->info.history.last_epoch_started;
NamedState(context< PeeringMachine >().state_history, "Started/Primary/Peering/Incomplete")
{
context< PeeringMachine >().log_enter(state_name);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ps->state_clear(PG_STATE_PEERING);
ps->state_set(PG_STATE_INCOMPLETE);
}
boost::statechart::result PeeringState::Incomplete::react(const AdvMap &advmap) {
- DECLARE_LOCALS
+ DECLARE_LOCALS;
int64_t poolnum = ps->info.pgid.pool();
// Reset if min_size turn smaller than previous value, pg might now be able to go active
}
boost::statechart::result PeeringState::Incomplete::react(const MNotifyRec& notevt) {
- DECLARE_LOCALS
+ DECLARE_LOCALS;
psdout(7) << "handle_pg_notify from osd." << notevt.from << dendl;
if (ps->proc_replica_info(
notevt.from, notevt.notify.info, notevt.notify.epoch_sent)) {
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ps->state_clear(PG_STATE_INCOMPLETE);
utime_t dur = ceph_clock_now() - enter_time;
{
context< PeeringMachine >().log_enter(state_name);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
ceph_assert(!ps->acting_recovery_backfill.empty());
eversion_t since;
for (set<pg_shard_t>::iterator i = ps->acting_recovery_backfill.begin();
boost::statechart::result PeeringState::GetMissing::react(const MLogRec& logevt)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
peer_missing_requested.erase(logevt.from);
ps->proc_replica_log(logevt.msg->info, logevt.msg->log, logevt.msg->missing, logevt.from);
boost::statechart::result PeeringState::GetMissing::react(const QueryState& q)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
q.f->open_object_section("state");
q.f->dump_string("name", state_name);
q.f->dump_stream("enter_time") << enter_time;
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
utime_t dur = ceph_clock_now() - enter_time;
pl->get_peering_perf().tinc(rs_getmissing_latency, dur);
ps->blocked_by.clear();
boost::statechart::result PeeringState::WaitUpThru::react(const ActMap& am)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
if (!ps->need_up_thru) {
post_event(Activate(ps->get_osdmap_epoch()));
}
boost::statechart::result PeeringState::WaitUpThru::react(const MLogRec& logevt)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
psdout(10) << "Noting missing from osd." << logevt.from << dendl;
ps->peer_missing[logevt.from].claim(logevt.msg->missing);
ps->peer_info[logevt.from] = logevt.msg->info;
void PeeringState::WaitUpThru::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- DECLARE_LOCALS
+ DECLARE_LOCALS;
utime_t dur = ceph_clock_now() - enter_time;
pl->get_peering_perf().tinc(rs_waitupthru_latency, dur);
}
void PeeringState::PeeringMachine::log_enter(const char *state_name)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
psdout(5) << "enter " << state_name << dendl;
pl->log_state_enter(state_name);
}
void PeeringState::PeeringMachine::log_exit(const char *state_name, utime_t enter_time)
{
- DECLARE_LOCALS
+ DECLARE_LOCALS;
utime_t dur = ceph_clock_now() - enter_time;
psdout(5) << "exit " << state_name << " " << dur << " " << event_count << " " << event_time << dendl;
pl->log_state_exit(state_name, enter_time, event_count, event_time);