]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
mon/Paxos: fix another uncommitted value corner case
authorSage Weil <sage@inktank.com>
Thu, 22 Aug 2013 22:54:48 +0000 (15:54 -0700)
committerSage Weil <sage@inktank.com>
Mon, 26 Aug 2013 20:08:57 +0000 (13:08 -0700)
commit43e7ad989dcb4deb18b32ec31f76c8755354d2a6
treef9c3763948b0c0307e8eadb9014401f6984bce5e
parent2de1515289f49f2e388448506f4788db56d0e25a
mon/Paxos: fix another uncommitted value corner case

It is possible that we begin the paxos recovery with an uncommitted
value for, say, commit 100.  During last/collect we discover 100 has been
committed already.  But also, another node provides an uncommitted value
for 101 with the same pn.  Currently, we refuse to learn it, because the
pn is not strictly > than our current uncommitted pn... even though it is
the next last_committed+1 value that we need.

There are two possible fixes here:

 - make this a >= as we can accept newer values from the same pn.
 - discard our uncommitted value metadata when we commit the value.

Let's do both!

Fixes: #6090
Signed-off-by: Sage Weil <sage@inktank.com>
(cherry picked from commit fe5010380a3a18ca85f39403e8032de1dddbe905)
src/mon/Paxos.cc