]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/PaxosService: allow paxos service writes while paxos is updating
authorSage Weil <sage@inktank.com>
Thu, 20 Jun 2013 22:39:23 +0000 (15:39 -0700)
committerSage Weil <sage@inktank.com>
Mon, 24 Jun 2013 23:16:42 +0000 (16:16 -0700)
In commit f985de28f86675e974ac7842a49922a35fe24c6c I mistakenly made
is_writeable() false while paxos was updating due to a misread of
Paxos::propose_new_value() (I didn't see that it would queue).
This is problematic because it narrows the window during which each service
is writeable for no reason.

Allow service to be writeable both when paxos is active and updating.

Signed-off-by: Sage Weil <sage@inktank.com>
(cherry picked from commit 11169693d086e67dcf168ce65ef6e13eebd1a1ab)

src/mon/PaxosService.h

index 63e06110d073c1a43868f4480a977764b323ccd9..100ec4f52fd3f441b40f2497c5023b3678554a74 100644 (file)
@@ -547,7 +547,7 @@ public:
    *
    *  - we are not proposing a new version;
    *  - we are ready to be written to -- i.e., we have a pending value.
-   *  - paxos is writeable
+   *  - paxos is (active or updating)
    *
    * @returns true if writeable; false otherwise
    */
@@ -555,7 +555,7 @@ public:
     return
       !is_proposing() &&
       is_write_ready() &&
-      paxos->is_writeable();
+      (paxos->is_active() || paxos->is_updating());
   }
 
   /**