diff options
author | Roger Dingledine <arma@torproject.org> | 2021-10-23 04:18:00 -0400 |
---|---|---|
committer | Roger Dingledine <arma@torproject.org> | 2021-10-24 17:40:28 -0400 |
commit | d66549c20855b4d75b1a26f18c852327f6a75a05 (patch) | |
tree | 7e416fed816413ee6770fa9bf359d48daccfc3bf /doc/man | |
parent | 2f171f30c8fdcf968ea304d48c42db9fbd0efdf4 (diff) | |
download | tor-d66549c20855b4d75b1a26f18c852327f6a75a05.tar.gz tor-d66549c20855b4d75b1a26f18c852327f6a75a05.zip |
fetch missing bridge descriptors without delay
Without this change, if we have a working bridge, and we add a new bridge,
we will schedule the fetch attempt for that new bridge descriptor for
three hours(!) in the future.
This change is especially needed because of bug #40396, where if you have
one working bridge and one bridge whose descriptor you haven't fetched
yet, your Tor will stall until you have successfully fetched that new
descriptor -- in this case for hours.
In the old design, we would put off all further bridge descriptor fetches
once we had any working bridge descriptor. In this new design, we make the
decision per bridge based on whether we successfully got *its* descriptor.
To make this work, we need to also call learned_bridge_descriptor() every
time we get a bridge descriptor, not just when it's a novel descriptor.
Fixes bug 40396.
Also happens to fix bug 40495 (redundant descriptor fetches for every
bridge) since now we delay fetches once we succeed.
A side effect of this change is that if we have any configured bridges
that *aren't* working, we will keep trying to fetch their descriptors
on the modern directory retry schedule -- every couple of seconds for
the first half minute, then backing off after that -- which is a lot
faster than before.
Diffstat (limited to 'doc/man')
-rw-r--r-- | doc/man/tor.1.txt | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/doc/man/tor.1.txt b/doc/man/tor.1.txt index c64a84d05f..3116957bc2 100644 --- a/doc/man/tor.1.txt +++ b/doc/man/tor.1.txt @@ -3556,14 +3556,15 @@ The following options are used for running a testing Tor network. [[TestingAuthKeySlop]] **TestingAuthKeySlop** __N__ **seconds**|**minutes**|**hours** + [[TestingBridgeBootstrapDownloadInitialDelay]] **TestingBridgeBootstrapDownloadInitialDelay** __N__:: - Initial delay in seconds for when clients should download each bridge descriptor when they - have just started, or when they can not contact any of their bridges. + Initial delay in seconds for how long clients should wait before + downloading a bridge descriptor for a new bridge. Changing this requires that **TestingTorNetwork** is set. (Default: 0) [[TestingBridgeDownloadInitialDelay]] **TestingBridgeDownloadInitialDelay** __N__:: - Initial delay in seconds for when clients should download each bridge descriptor when they - know that one or more of their configured bridges are running. Changing - this requires that **TestingTorNetwork** is set. (Default: 10800) + How long to wait (in seconds) once clients have successfully + downloaded a bridge descriptor, before trying another download for + that same bridge. Changing this requires that **TestingTorNetwork** + is set. (Default: 10800) [[TestingClientConsensusDownloadInitialDelay]] **TestingClientConsensusDownloadInitialDelay** __N__:: Initial delay in seconds for when clients should download consensuses. Changing this |