Skip to content
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

Fix partition setup #9386

Merged
merged 6 commits into from
Apr 9, 2020
Merged

Conversation

carllin
Copy link
Contributor

@carllin carllin commented Apr 9, 2020

Problem

  1. Partitions were not being created properly due to misuse of tc on ingress traffic.
  2. Improper "default" filter was causing other unintended traffic to be filtered (causing validators within the same partition to be unable to communicate)
  3. Cleanup partitions was not being done correctly, off by one error in identifying a validators partitions prevented multiple partitions from being simulated consecutively.

Summary of Changes

  1. Set up partitions by redirecting ingress traffic to the egress traffic stream of a virtual interface, ifb0. This allows ingress traffic to then be shaped using stateful qdiscs and filters, allowing for originally intended behavior of dropping incoming packets based on tos field.
  2. Setup a proper "catch-all" filter to allow validators on same partition to talk to each other.
  3. Simplify cleanup logic

On a 4 node network, 50-50 split, 2-min partition:

Partitions actually seem to be happening in gossip now!
Screen Shot 2020-04-08 at 7 25 25 PM
Screen Shot 2020-04-08 at 7 24 21 PM

Both validators on the of the the bootstrap leader continue to move during partition (76% of the stake):
Screen Shot 2020-04-08 at 7 42 02 PM
Screen Shot 2020-04-08 at 7 41 51 PM

Validators on other side get stuck as expected (24% of the stake):
Screen Shot 2020-04-08 at 7 37 02 PM
Screen Shot 2020-04-08 at 7 38 47 PM

Fixes #

aeyakovenko
aeyakovenko previously approved these changes Apr 9, 2020
@codecov
Copy link

codecov bot commented Apr 9, 2020

Codecov Report

Merging #9386 into master will decrease coverage by 0.0%.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           master   #9386     +/-   ##
========================================
- Coverage    81.1%   81.1%   -0.1%     
========================================
  Files         276     276             
  Lines       62110   62110             
========================================
- Hits        50429   50427      -2     
- Misses      11681   11683      +2     

@mergify mergify bot dismissed aeyakovenko’s stale review April 9, 2020 07:02

Pull request has been modified.

@carllin carllin marked this pull request as ready for review April 9, 2020 07:20
@carllin carllin added v1.1 automerge Merge this Pull Request automatically once CI passes labels Apr 9, 2020
@solana-grimes solana-grimes merged commit 21cb56d into solana-labs:master Apr 9, 2020
mergify bot pushed a commit that referenced this pull request Apr 9, 2020
automerge

(cherry picked from commit 21cb56d)
@mergify mergify bot mentioned this pull request Apr 9, 2020
solana-grimes pushed a commit that referenced this pull request Apr 9, 2020
carllin pushed a commit to carllin/solana that referenced this pull request May 18, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
automerge Merge this Pull Request automatically once CI passes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants