mirror of
https://github.com/dashpay/dash.git
synced 2024-12-27 04:52:59 +01:00
Merge #7919: Fix headers announcements edge case
3a99fb2
Fix headers announcements edge case (Suhas Daftuar)
This commit is contained in:
commit
76176823ba
16
src/main.cpp
16
src/main.cpp
@ -5717,7 +5717,21 @@ bool SendMessages(CNode* pto)
|
||||
fRevertToInv = true;
|
||||
break;
|
||||
}
|
||||
assert(pBestIndex == NULL || pindex->pprev == pBestIndex);
|
||||
if (pBestIndex != NULL && pindex->pprev != pBestIndex) {
|
||||
// This means that the list of blocks to announce don't
|
||||
// connect to each other.
|
||||
// This shouldn't really be possible to hit during
|
||||
// regular operation (because reorgs should take us to
|
||||
// a chain that has some block not on the prior chain,
|
||||
// which should be caught by the prior check), but one
|
||||
// way this could happen is by using invalidateblock /
|
||||
// reconsiderblock repeatedly on the tip, causing it to
|
||||
// be added multiple times to vBlockHashesToAnnounce.
|
||||
// Robustly deal with this rare situation by reverting
|
||||
// to an inv.
|
||||
fRevertToInv = true;
|
||||
break;
|
||||
}
|
||||
pBestIndex = pindex;
|
||||
if (fFoundStartingHeader) {
|
||||
// add this to the headers message
|
||||
|
Loading…
Reference in New Issue
Block a user