]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/Paxos: debug ignored uncommitted values
authorSage Weil <sage@inktank.com>
Sun, 21 Jul 2013 15:12:46 +0000 (08:12 -0700)
committerSage Weil <sage@inktank.com>
Wed, 24 Jul 2013 16:01:20 +0000 (09:01 -0700)
Signed-off-by: Sage Weil <sage@inktank.com>
(cherry picked from commit 19b29788966eb80ed847630090a16a3d1b810969)

src/mon/Paxos.cc

index 5a9cd841c0e12c8157a9b70d3d012f51d2cb6b0a..391a89c60da13254b46737eeff863396bbf2c553 100644 (file)
@@ -392,17 +392,23 @@ void Paxos::handle_last(MMonPaxos *last)
             << num_last << " peons" << dendl;
 
     // did this person send back an accepted but uncommitted value?
-    if (last->uncommitted_pn &&
-       last->uncommitted_pn > uncommitted_pn &&
-       last->last_committed >= last_committed &&
-       last->last_committed + 1 >= uncommitted_v) {
-      uncommitted_v = last->last_committed+1;
-      uncommitted_pn = last->uncommitted_pn;
-      uncommitted_value = last->values[uncommitted_v];
-      dout(10) << "we learned an uncommitted value for " << uncommitted_v 
-              << " pn " << uncommitted_pn
-              << " " << uncommitted_value.length() << " bytes"
-              << dendl;
+    if (last->uncommitted_pn) {
+      if (last->uncommitted_pn > uncommitted_pn &&
+         last->last_committed >= last_committed &&
+         last->last_committed + 1 >= uncommitted_v) {
+       uncommitted_v = last->last_committed+1;
+       uncommitted_pn = last->uncommitted_pn;
+       uncommitted_value = last->values[uncommitted_v];
+       dout(10) << "we learned an uncommitted value for " << uncommitted_v
+                << " pn " << uncommitted_pn
+                << " " << uncommitted_value.length() << " bytes"
+                << dendl;
+      } else {
+       dout(10) << "ignoring uncommitted value for " << (last->last_committed+1)
+                << " pn " << last->uncommitted_pn
+                << " " << last->values[last->last_committed+1].length() << " bytes"
+                << dendl;
+      }
     }
     
     // is that everyone?