In some case this is possible that a node start it's self repair but as missed a new node transaction and so doesn't know this node.
Before starting the synchronize the missed transactions, the node aggregate the P2P view and ensure the p2p view of each summary has the same size of the expected node to sample for the summary subset. But since don't know all the node, the size comparison will fail and will make the p2p view empty
To fix this, instead of ensuring the p2p view size with local data, during aggregation the node will take the most frequent size across all summaries.
Type of change
Bug fix (non-breaking change which fixes an issue)
How Has This Been Tested?
Starts 3 nodes at the same time, after the first summary, the 3rd node will have a wrong p2p view compared to others
Checklist:
My code follows the style guidelines of this project
I have performed a self-review of my own code
I have commented my code, particularly in hard-to-understand areas
I have made corresponding changes to the documentation
My changes generate no new warnings
I have added tests that prove my fix is effective or that my feature works
New and existing unit tests pass locally with my changes
Any dependent changes have been merged and published in downstream modules
Description
In some case this is possible that a node start it's self repair but as missed a new node transaction and so doesn't know this node. Before starting the synchronize the missed transactions, the node aggregate the P2P view and ensure the p2p view of each summary has the same size of the expected node to sample for the summary subset. But since don't know all the node, the size comparison will fail and will make the p2p view empty
To fix this, instead of ensuring the p2p view size with local data, during aggregation the node will take the most frequent size across all summaries.
Type of change
How Has This Been Tested?
Starts 3 nodes at the same time, after the first summary, the 3rd node will have a wrong p2p view compared to others
Checklist: