You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Peer 1 was on round 12 and had a justified_pre_prepare from itself for that round.
The other peers timed-out and went to round 13.
It didn't receive any round 13 round change message (all dropped), so was still on round 12.
Peer 2 got f+1 round changes, so sent a pre_prepare for round 13.
Peer 1 paniced when it received this. It should not.
This is not correct:
if prevRound != msgRound {
// Upon rules are either for the current round,
// or for a future round followed by a round change (which clears this map).
panic("bug: duplicate rule, but different round")
}
Proposed solution
Since messages are justified, any rule can be triggered for a future (or a previous) round at any point.
Rather include round in the dedup key:
map[struct{UponRule,Round}]bool
The text was updated successfully, but these errors were encountered:
Since some messages are justified, justified rules can be triggered for a future (or a previous) round at any point. So include round when deduping.
category: bug
ticket: #1493
Problem to be solved
qbft unit test failed due to
qbft sanity check: bug: duplicate rule, but different round
. See https://github.com/ObolNetwork/charon/actions/runs/3575841940/jobs/6012896513.This is however incorrect since it is expected. The flow was:
Peer 1 was on round 12 and had a
justified_pre_prepare
from itself for that round.The other peers timed-out and went to round 13.
It didn't receive any round 13 round change message (all dropped), so was still on round 12.
Peer 2 got f+1 round changes, so sent a pre_prepare for round 13.
Peer 1 paniced when it received this. It should not.
This is not correct:
Proposed solution
Since messages are justified, any rule can be triggered for a future (or a previous) round at any point.
Rather include round in the dedup key:
The text was updated successfully, but these errors were encountered: