]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Revert "osd: Handle getting RecoveryDone while in RepWaitBackfillReserved"
authorDavid Zafman <dzafman@redhat.com>
Tue, 12 Feb 2019 03:42:43 +0000 (19:42 -0800)
committerDavid Zafman <dzafman@redhat.com>
Thu, 14 Feb 2019 17:47:22 +0000 (09:47 -0800)
This reverts commit 83c2521a5316c922875746a40b95100b62865e67.

This original fix handled the race by accepting the RecoveryDone
while in RepWaitBackfillReserved by going to RepNotRecovering.
Once we weren't crashing OSDs, none of the tests at the time
detected that backfill was actually hung.

Signed-off-by: David Zafman <dzafman@redhat.com>
src/osd/PG.cc
src/osd/PG.h

index 0ea49cd8147a37420d96f4f60520dfd256a21cb7..737142dd103b2a71c6f6fc1d72cd3e92a53fc752 100644 (file)
@@ -7838,15 +7838,6 @@ PG::RecoveryState::RepWaitBackfillReserved::react(
   return transit<RepNotRecovering>();
 }
 
-boost::statechart::result
-PG::RecoveryState::RepWaitBackfillReserved::react(const RecoveryDone&)
-{
-  PG *pg = context< RecoveryMachine >().pg;
-  pg->clear_reserved_num_bytes();
-  pg->osd->remote_reserver.cancel_reservation(pg->info.pgid);
-  return transit<RepNotRecovering>();
-}
-
 /*---RepRecovering-------*/
 PG::RecoveryState::RepRecovering::RepRecovering(my_context ctx)
   : my_base(ctx),
index d5dcf43ef852eedf79fc95186b5564b29e978979..cc8db27f55f8f263e533b35e515b6d437ea2e498 100644 (file)
@@ -2544,8 +2544,7 @@ protected:
        boost::statechart::custom_reaction< RemoteBackfillReserved >,
        boost::statechart::custom_reaction< RejectRemoteReservation >,
        boost::statechart::custom_reaction< RemoteReservationRejected >,
-       boost::statechart::custom_reaction< RemoteReservationCanceled >,
-       boost::statechart::custom_reaction< RecoveryDone >
+       boost::statechart::custom_reaction< RemoteReservationCanceled >
        > reactions;
       explicit RepWaitBackfillReserved(my_context ctx);
       void exit();
@@ -2553,7 +2552,6 @@ protected:
       boost::statechart::result react(const RejectRemoteReservation &evt);
       boost::statechart::result react(const RemoteReservationRejected &evt);
       boost::statechart::result react(const RemoteReservationCanceled &evt);
-      boost::statechart::result react(const RecoveryDone&);
     };
 
     struct RepWaitRecoveryReserved : boost::statechart::state< RepWaitRecoveryReserved, ReplicaActive >, NamedState {