]> git-server-git.apps.pok.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>
Tue, 21 May 2019 17:48:24 +0000 (10:48 -0700)
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>
(cherry picked from commit d3a6ce692efaa78264df28122deb2b7476f15ede)

src/osd/PG.cc
src/osd/PG.h

index f1926a2fdf9ce71fd16350679c6c50234b7a0c88..b06852859efc29633916aa7e765872f48c5ca1ff 100644 (file)
@@ -7536,14 +7536,6 @@ PG::RecoveryState::RepWaitBackfillReserved::react(
   return transit<RepNotRecovering>();
 }
 
-boost::statechart::result
-PG::RecoveryState::RepWaitBackfillReserved::react(const RecoveryDone&)
-{
-  PG *pg = context< RecoveryMachine >().pg;
-  pg->osd->remote_reserver.cancel_reservation(pg->info.pgid);
-  return transit<RepNotRecovering>();
-}
-
 /*---RepRecovering-------*/
 PG::RecoveryState::RepRecovering::RepRecovering(my_context ctx)
   : my_base(ctx),
index 7ee3ecfe7a2a57a5af9286402b11ce2b66749cca..ed6690596e71c097681c8aa69b099e1ce92b436f 100644 (file)
@@ -2459,8 +2459,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();
@@ -2468,7 +2467,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 {