]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: PaxosService: consider is_recovering() on is_writeable()
authorJoao Eduardo Luis <joao.luis@inktank.com>
Mon, 15 Apr 2013 12:38:04 +0000 (13:38 +0100)
committerJoao Eduardo Luis <joao.luis@inktank.com>
Mon, 22 Apr 2013 22:20:14 +0000 (23:20 +0100)
A service is never writeable while it's recovering.

Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
src/mon/PaxosService.h

index f16bc77cdeb1b28d14a16e8279ad6931adb9a6e9..31ec1eea999428b34c4819e396cf0faa5e49d961 100644 (file)
@@ -502,13 +502,15 @@ public:
    *  - our monitor is the leader;
    *  - we have a valid lease;
    *  - Paxos is not boostrapping.
+   *  - Paxos is not recovering.
    *
    * @returns true if writeable; false otherwise
    */
   bool is_writeable() {
     return (!is_proposing() && mon->is_leader()
         && !paxos->is_locked()
-       && paxos->is_lease_valid() && !paxos->is_bootstrapping());
+       && paxos->is_lease_valid() && !paxos->is_bootstrapping()
+        && !paxos->is_recovering());
   }
 
   /**