The primary may send us a REJECT (meaning cancel) if recovery/backfill is
preempted there. That can happen even if the recovery isn't reserved or
requested here (e.g., because the primary is still waiting for the local
reservation). Just ignore it and remain in RepNotRecovering.
Fixes: http://tracker.ceph.com/issues/21613
Signed-off-by: Sage Weil <sage@redhat.com>
typedef boost::mpl::list<
boost::statechart::custom_reaction< RequestBackfillPrio >,
boost::statechart::transition< RequestRecovery, RepWaitRecoveryReserved >,
+ boost::statechart::transition< RemoteReservationRejected, RepNotRecovering >, // if primary is preempted or cancels
boost::statechart::transition< RecoveryDone, RepNotRecovering > // for compat with pre-reservation peers
> reactions;
explicit RepNotRecovering(my_context ctx);