Add a check to make sure that during state conflict res we only request a PDU we don't have.

This commit is contained in:
Erik Johnston 2014-08-15 11:47:01 +01:00
parent 1a26905cc9
commit c5f2da5875
2 changed files with 13 additions and 2 deletions

View file

@ -191,10 +191,18 @@ class StateHandler(object):
key=lambda x: x.depth
)
pdu_id = missing_prev.prev_state_id
origin = missing_prev.prev_state_origin
is_missing = yield self.store.get_pdu(pdu_id, origin) is None
if not is_missing:
raise Exception("Conflict resolution failed.")
yield self._replication.get_pdu(
destination=missing_prev.origin,
pdu_origin=missing_prev.prev_state_origin,
pdu_id=missing_prev.prev_state_id,
pdu_origin=origin,
pdu_id=pdu_id,
outlier=True
)