]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/PG: handle spurious remote revoke or toofull 18553/head
authorSage Weil <sage@redhat.com>
Sun, 29 Oct 2017 03:49:44 +0000 (22:49 -0500)
committerSage Weil <sage@redhat.com>
Sun, 29 Oct 2017 03:49:44 +0000 (22:49 -0500)
If we restart the recovery reservation process for some reason (e.g.,
local preemption), we may still get a racing REVOKE from the replicas in
the previous round.  Ignore.

Signed-off-by: Sage Weil <sage@redhat.com>
src/osd/PG.h

index 024c29abcf3ea16d49373afd72b55be22e93d0dc..145d4db298291aa429a68c2a5adaece988de84fb 100644 (file)
@@ -2127,7 +2127,9 @@ protected:
        boost::statechart::custom_reaction< DeferRecovery >,
        boost::statechart::custom_reaction< DeferBackfill >,
        boost::statechart::custom_reaction< UnfoundRecovery >,
-       boost::statechart::custom_reaction< UnfoundBackfill >
+       boost::statechart::custom_reaction< UnfoundBackfill >,
+       boost::statechart::custom_reaction< RemoteReservationRevokedTooFull>,
+       boost::statechart::custom_reaction< RemoteReservationRevoked>
        > reactions;
       boost::statechart::result react(const QueryState& q);
       boost::statechart::result react(const ActMap&);
@@ -2151,6 +2153,12 @@ protected:
       boost::statechart::result react(const UnfoundBackfill& evt) {
        return discard_event();
       }
+      boost::statechart::result react(const RemoteReservationRevokedTooFull&) {
+       return discard_event();
+      }
+      boost::statechart::result react(const RemoteReservationRevoked&) {
+       return discard_event();
+      }
     };
 
     struct Clean : boost::statechart::state< Clean, Active >, NamedState {