-
Notifications
You must be signed in to change notification settings - Fork 4.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add local cluster tests that broadcast duplicate slots #13995
Conversation
Test commands with log level
|
@jstarry thanks! |
be97300
to
03e1b36
Compare
03e1b36
to
b861d59
Compare
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. |
@carllin we still want this to land after your changes right? If so, I'll keep it from getting going stale |
@jstarry yeah, there's a few more changes before this one can go in, but that's the goal! |
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. |
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. |
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. |
b861d59
to
ce43dd6
Compare
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. |
ce43dd6
to
acc87bb
Compare
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. |
acc87bb
to
cf626d8
Compare
Found one more edge case, fix here: carllin@e5cacb1 Broadcasts need to handle interrupted slots, otherwise they'll start from the shred index of the previous interrupted block |
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. |
This stale pull request has been automatically closed. Thank you for your contributions. |
9266c31
to
1d429d1
Compare
Codecov Report
@@ Coverage Diff @@
## master #13995 +/- ##
=========================================
- Coverage 82.7% 82.6% -0.2%
=========================================
Files 430 431 +1
Lines 120480 120674 +194
=========================================
- Hits 99734 99728 -6
- Misses 20746 20946 +200 |
Tagging @AshwinSekar, these are some tests, specifically |
let data_shreds = Arc::new(data_shreds); | ||
blockstore_sender.send((data_shreds.clone(), None))?; | ||
|
||
// 3) Start broadcast step |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For my understanding, why do we send out the duplicate shreds first before the real recipients?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's arbitrary. They should be received around the same time. The key part here is just that two sets of nodes get different versions of the same block and they are completely unaware that another version exists. Later, we send out a shred that belongs to the duplicate version so that nodes learn of the existence of a duplicate and start acting to fix the forking.
* Add duplicate node local cluster test * fix clippy * remove dupe test (cherry picked from commit 050bb54)
Problem
Lacking local cluster tests for faulty nodes which sends duplicate shreds for complete blocks
Summary of Changes