return false;
}
+void PG::on_activate_complete()
+{
+ active_promise.set_value();
+ active_promise = {};
+
+ if (peering_state.needs_recovery()) {
+ shard_services.start_operation<LocalPeeringEvent>(
+ this,
+ shard_services,
+ pg_whoami,
+ pgid,
+ get_osdmap_epoch(),
+ get_osdmap_epoch(),
+ PeeringState::DoRecovery{});
+ } else if (peering_state.needs_backfill()) {
+ shard_services.start_operation<LocalPeeringEvent>(
+ this,
+ shard_services,
+ pg_whoami,
+ pgid,
+ get_osdmap_epoch(),
+ get_osdmap_epoch(),
+ PeeringState::RequestBackfill{});
+ } else {
+ shard_services.start_operation<LocalPeeringEvent>(
+ this,
+ shard_services,
+ pg_whoami,
+ pgid,
+ get_osdmap_epoch(),
+ get_osdmap_epoch(),
+ PeeringState::AllReplicasRecovered{});
+ }
+}
+
void PG::log_state_enter(const char *state) {
logger().info("Entering state: {}", state);
}
void on_activate(interval_set<snapid_t> to_trim) final {
// Not needed yet (will be needed for IO unblocking)
}
- void on_activate_complete() final {
- active_promise.set_value();
- active_promise = {};
- }
+ void on_activate_complete() final;
void on_new_interval() final {
// Not needed yet
}