torproject / chutney Public
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
Ticket33379 #57
Merged
Merged
Ticket33379 #57
Conversation
bd890eb
to
b245cda
Closed
Part of 33232.
The previous code counted the number of sleeps. Using wallclock time is more accurate, and the code is simpler. Part of 33232.
Split print_bootstrap_status() out into its own function. Part of 33232.
wait_for_bootstrap now prints bootstrap progress every 20 seconds. Part of 33232.
Before launching "chutney verify", test-network checks that all the nodes have bootstrapped. Part of 33232.
Part of 33379.
When $CHUTNEY_WARNINGS_SKIP is true, skip all warnings.
Part of 33379.
And update some old code to use them. Part of 33379.
Part of 33379.
Check that every relay has published its directory info to the authorities, it is in the consensus, and every node has downloaded it. Check that every bridge has published its directory info to the bridge authority, and it is in the bridge networkstatus. Check that every bridge client has downloaded bridge descriptors. This code currently does not work for these chutney networks: * bridges-min * bridges+ipv6-min All other networks pass the new tests. Part of 33379.
Stop expecting bridges to be published in the consensus. Also, stop expecting bridge clients to: * have bridge microdescriptors, and * have consensus relay full descriptors. Partially fixes these chutney networks: * bridges-min * bridges+ipv6-min Part of 33379.
Bridges with AssumeReachable fail to publish their descriptors, because they try very early, when they haven't bootstrapped. Turning off AssumeReachable in 33232 should fix this issue. This changes makes these chutney networks succeed: * bridges-min * bridges+ipv6-min Part of 33379.
072dae6
to
04b25f1
Avoids a race condition in microdescriptor downloads in 0.3.5. Once we check for microdescriptors in 33428, we should be able to reduce this timeout. Part of 33379.
Authorities and relays need 3 *other* authorities/relays to bootstrap. And Tor 0.3.5 needs 5 authorities/relays in the consensus. We add authorities, because some networks only have one relay or exit, to make sure all paths go through that relay/exit. Part of 33232.
Tor 0.3.5 is unstable with exit relays in mixed+hs-v2, so we use non-exit relays. (Recent tor versions use mixed+hs-v23, and they support exit relays.) Part of 33379.
Wait for a consistent amount of time between verify attempts, regardless of the time elapsed during the attempt. Try to make at least 2 verify attempts per consensus interval, but also try to limit the number of attempts. Also increase the default timeout: sometimes 3 seconds is too short on a heavily-loaded machine. These changes should make verification more reliable. Part of 33379.
Merged
ahf
approved these changes
Mar 12, 2020
| try: | ||
| return self._env['bridge'] | ||
| except KeyError: | ||
| return 0 |
| def getBridgeClient(self): | ||
| """Return the bridge client flag for this node.""" | ||
| try: | ||
| return self._env['bridgeclient'] |
| def getBridgeAuthority(self): | ||
| """Return the bridge authority flag for this node.""" | ||
| try: | ||
| return self._env['bridgeauthority'] |
| def getAuthority(self): | ||
| """Return the authority flag for this node.""" | ||
| try: | ||
| return self._env['authority'] |
| The relay flag is set on authorities, relays, and bridges. | ||
| """ | ||
| try: | ||
| return self._env['relay'] |
| other_node_nick | ||
| for other_node_nick in dir_status | ||
| if dir_status[other_node_nick] is not None and | ||
| dir_status[other_node_nick][0] == status_code ] |
I often find the "complex" list comprehensions to be difficult to read and prefer things like using filter() there.
| # this issue. | ||
| print("Waiting {} seconds for other dir info to sync...\n" | ||
| .format(int(Network.WAIT_FOR_UNCHECKED_DIR_INFO_DELAY))) | ||
| time.sleep(Network.WAIT_FOR_UNCHECKED_DIR_INFO_DELAY) |
Should we note down somewhere the places where we are sleeping where "technically" we should be awaiting some event of some sort?
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
No description provided.
The text was updated successfully, but these errors were encountered: