Turn TestingClientBootstrap* into non-testing options

This changes simply renames them by removing "Testing" in front of them and
they do not require TestingTorNetwork to be enabled anymore.

Fixes #18481

Signed-off-by: David Goulet <dgoulet@ev0ke.net>
This commit is contained in:
David Goulet 2016-04-05 14:43:20 -04:00 committed by Nick Mathewson
parent d8a056daed
commit 40827da3bf
7 changed files with 94 additions and 101 deletions

5
changes/bug18481 Normal file
View File

@ -0,0 +1,5 @@
o Minor bugfixes (client):
- Turn all TestingClientBootstrap* into non-testing torrc options. This
changes simply renames them by removing "Testing" in front of them and
they do not require TestingTorNetwork to be enabled anymore. Fixes
#18481; bugfix on tor-0.2.8.1-alpha.

View File

@ -1558,6 +1558,45 @@ The following options are useful only for clients (that is, if
Tor will use a default value chosen by the directory
authorities. (Default: -1.)
[[ClientBootstrapConsensusAuthorityDownloadSchedule]] **ClientBootstrapConsensusAuthorityDownloadSchedule** __N__,__N__,__...__::
Schedule for when clients should download consensuses from authorities
if they are bootstrapping (that is, they don't have a usable, reasonably
live consensus). Only used by clients fetching from a list of fallback
directory mirrors. This schedule is advanced by (potentially concurrent)
connection attempts, unlike other schedules, which are advanced by
connection failures. (Default: 10, 11, 3600, 10800, 25200, 54000,
111600, 262800)
[[ClientBootstrapConsensusFallbackDownloadSchedule]] **ClientBootstrapConsensusFallbackDownloadSchedule** __N__,__N__,__...__::
Schedule for when clients should download consensuses from fallback
directory mirrors if they are bootstrapping (that is, they don't have a
usable, reasonably live consensus). Only used by clients fetching from a
list of fallback directory mirrors. This schedule is advanced by
(potentially concurrent) connection attempts, unlike other schedules,
which are advanced by connection failures. (Default: 0, 1, 4, 11, 3600,
10800, 25200, 54000, 111600, 262800)
[[ClientBootstrapConsensusAuthorityOnlyDownloadSchedule]] **ClientBootstrapConsensusAuthorityOnlyDownloadSchedule** __N__,__N__,__...__::
Schedule for when clients should download consensuses from authorities
if they are bootstrapping (that is, they don't have a usable, reasonably
live consensus). Only used by clients which don't have or won't fetch
from a list of fallback directory mirrors. This schedule is advanced by
(potentially concurrent) connection attempts, unlike other schedules,
which are advanced by connection failures. (Default: 0, 3, 7, 3600,
10800, 25200, 54000, 111600, 262800)
[[ClientBootstrapConsensusMaxDownloadTries]] **ClientBootstrapConsensusMaxDownloadTries** __NUM__::
Try this many times to download a consensus while bootstrapping using
fallback directory mirrors before giving up. (Default: 7)
[[ClientBootstrapConsensusAuthorityOnlyMaxDownloadTries]] **ClientBootstrapConsensusAuthorityOnlyMaxDownloadTries** __NUM__::
Try this many times to download a consensus while bootstrapping using
authorities before giving up. (Default: 4)
[[ClientBootstrapConsensusMaxInProgressTries]] **ClientBootstrapConsensusMaxInProgressTries** __NUM__::
Try this many simultaneous connections to download a consensus before
waiting for one to complete, timeout, or error out. (Default: 4)
SERVER OPTIONS
--------------
@ -2347,6 +2386,14 @@ The following options are used for running a testing Tor network.
AssumeReachable 1
AuthDirMaxServersPerAddr 0
AuthDirMaxServersPerAuthAddr 0
ClientBootstrapConsensusAuthorityDownloadSchedule 0, 2,
4 (for 40 seconds), 8, 16, 32, 60
ClientBootstrapConsensusFallbackDownloadSchedule 0, 1,
4 (for 40 seconds), 8, 16, 32, 60
ClientBootstrapConsensusAuthorityOnlyDownloadSchedule 0, 1,
4 (for 40 seconds), 8, 16, 32, 60
ClientBootstrapConsensusMaxDownloadTries 80
ClientBootstrapConsensusAuthorityOnlyMaxDownloadTries 80
ClientDNSRejectInternalAddresses 0
ClientRejectInternalAddresses 0
CountPrivateBandwidth 1
@ -2365,18 +2412,10 @@ The following options are used for running a testing Tor network.
TestingClientDownloadSchedule 0, 0, 5, 10, 15, 20, 30, 60
TestingServerConsensusDownloadSchedule 0, 0, 5, 10, 15, 20, 30, 60
TestingClientConsensusDownloadSchedule 0, 0, 5, 10, 15, 20, 30, 60
TestingClientBootstrapConsensusAuthorityDownloadSchedule 0, 2,
4 (for 40 seconds), 8, 16, 32, 60
TestingClientBootstrapConsensusFallbackDownloadSchedule 0, 1,
4 (for 40 seconds), 8, 16, 32, 60
TestingClientBootstrapConsensusAuthorityOnlyDownloadSchedule 0, 1,
4 (for 40 seconds), 8, 16, 32, 60
TestingBridgeDownloadSchedule 60, 30, 30, 60
TestingClientMaxIntervalWithoutRequest 5 seconds
TestingDirConnectionMaxStall 30 seconds
TestingConsensusMaxDownloadTries 80
TestingClientBootstrapConsensusMaxDownloadTries 80
TestingClientBootstrapConsensusAuthorityOnlyMaxDownloadTries 80
TestingDescriptorMaxDownloadTries 80
TestingMicrodescMaxDownloadTries 80
TestingCertMaxDownloadTries 80
@ -2437,36 +2476,6 @@ The following options are used for running a testing Tor network.
requires that **TestingTorNetwork** is set. (Default: 0, 0, 60, 300, 600,
1800, 3600, 3600, 3600, 10800, 21600, 43200)
[[TestingClientBootstrapConsensusAuthorityDownloadSchedule]] **TestingClientBootstrapConsensusAuthorityDownloadSchedule** __N__,__N__,__...__::
Schedule for when clients should download consensuses from authorities if
they are bootstrapping (that is, they don't have a usable, reasonably live
consensus). Only used by clients fetching from a list of fallback
directory mirrors. This schedule is advanced by (potentially concurrent)
connection attempts, unlike other schedules, which are advanced by
connection failures. Changing this schedule requires that
**TestingTorNetwork** is set. (Default: 10, 11, 3600, 10800, 25200, 54000,
111600, 262800)
[[TestingClientBootstrapConsensusFallbackDownloadSchedule]] **TestingClientBootstrapConsensusFallbackDownloadSchedule** __N__,__N__,__...__::
Schedule for when clients should download consensuses from fallback
directory mirrors if they are bootstrapping (that is, they don't have a
usable, reasonably live consensus). Only used by clients fetching from a
list of fallback directory mirrors. This schedule is advanced by
(potentially concurrent) connection attempts, unlike other schedules, which
are advanced by connection failures. Changing this schedule requires that
**TestingTorNetwork** is set. (Default: 0, 1, 4, 11, 3600, 10800, 25200,
54000, 111600, 262800)
[[TestingClientBootstrapConsensusAuthorityOnlyDownloadSchedule]] **TestingClientBootstrapConsensusAuthorityOnlyDownloadSchedule** __N__,__N__,__...__::
Schedule for when clients should download consensuses from authorities if
they are bootstrapping (that is, they don't have a usable, reasonably live
consensus). Only used by clients which don't have or won't fetch from a
list of fallback directory mirrors. This schedule is advanced by
(potentially concurrent) connection attempts, unlike other schedules,
which are advanced by connection failures. Changing this schedule requires
that **TestingTorNetwork** is set. (Default: 0, 3, 7, 3600, 10800, 25200,
54000, 111600, 262800)
[[TestingBridgeDownloadSchedule]] **TestingBridgeDownloadSchedule** __N__,__N__,__...__::
Schedule for when clients should download bridge descriptors. Changing this
requires that **TestingTorNetwork** is set. (Default: 3600, 900, 900, 3600)
@ -2486,21 +2495,6 @@ The following options are used for running a testing Tor network.
Try this many times to download a consensus before giving up. Changing
this requires that **TestingTorNetwork** is set. (Default: 8)
[[TestingClientBootstrapConsensusMaxDownloadTries]] **TestingClientBootstrapConsensusMaxDownloadTries** __NUM__::
Try this many times to download a consensus while bootstrapping using
fallback directory mirrors before giving up. Changing this requires that
**TestingTorNetwork** is set. (Default: 7)
[[TestingClientBootstrapConsensusAuthorityOnlyMaxDownloadTries]] **TestingClientBootstrapConsensusAuthorityOnlyMaxDownloadTries** __NUM__::
Try this many times to download a consensus while bootstrapping using
authorities before giving up. Changing this requires that
**TestingTorNetwork** is set. (Default: 4)
[[TestingClientBootstrapConsensusMaxInProgressTries]] **TestingClientBootstrapConsensusMaxInProgressTries** __NUM__::
Try this many simultaneous connections to download a consensus before
waiting for one to complete, timeout, or error out. Changing this
requires that **TestingTorNetwork** is set. (Default: 4)
[[TestingDescriptorMaxDownloadTries]] **TestingDescriptorMaxDownloadTries** __NUM__::
Try this often to download a server descriptor before giving up.
Changing this requires that **TestingTorNetwork** is set. (Default: 8)

View File

@ -480,7 +480,7 @@ static config_var_t option_vars_[] = {
V(TestingClientConsensusDownloadSchedule, CSV_INTERVAL, "0, 0, 60, "
"300, 600, 1800, 3600, 3600, 3600, "
"10800, 21600, 43200"),
/* With the TestingClientBootstrapConsensus*Download* below:
/* With the ClientBootstrapConsensus*Download* below:
* Clients with only authorities will try:
* - 3 authorities over 10 seconds, then wait 60 minutes.
* Clients with authorities and fallbacks will try:
@ -493,27 +493,27 @@ static config_var_t option_vars_[] = {
*
* When clients have authorities and fallbacks available, they use these
* schedules: (we stagger the times to avoid thundering herds) */
V(TestingClientBootstrapConsensusAuthorityDownloadSchedule, CSV_INTERVAL,
V(ClientBootstrapConsensusAuthorityDownloadSchedule, CSV_INTERVAL,
"10, 11, 3600, 10800, 25200, 54000, 111600, 262800" /* 3 days + 1 hour */),
V(TestingClientBootstrapConsensusFallbackDownloadSchedule, CSV_INTERVAL,
V(ClientBootstrapConsensusFallbackDownloadSchedule, CSV_INTERVAL,
"0, 1, 4, 11, 3600, 10800, 25200, 54000, 111600, 262800"),
/* When clients only have authorities available, they use this schedule: */
V(TestingClientBootstrapConsensusAuthorityOnlyDownloadSchedule, CSV_INTERVAL,
V(ClientBootstrapConsensusAuthorityOnlyDownloadSchedule, CSV_INTERVAL,
"0, 3, 7, 3600, 10800, 25200, 54000, 111600, 262800"),
/* We don't want to overwhelm slow networks (or mirrors whose replies are
* blocked), but we also don't want to fail if only some mirrors are
* blackholed. Clients will try 3 directories simultaneously.
* (Relays never use simultaneous connections.) */
V(TestingClientBootstrapConsensusMaxInProgressTries, UINT, "3"),
V(ClientBootstrapConsensusMaxInProgressTries, UINT, "3"),
V(TestingBridgeDownloadSchedule, CSV_INTERVAL, "3600, 900, 900, 3600"),
V(TestingClientMaxIntervalWithoutRequest, INTERVAL, "10 minutes"),
V(TestingDirConnectionMaxStall, INTERVAL, "5 minutes"),
V(TestingConsensusMaxDownloadTries, UINT, "8"),
/* Since we try connections rapidly and simultaneously, we can afford
* to give up earlier. (This protects against overloading directories.) */
V(TestingClientBootstrapConsensusMaxDownloadTries, UINT, "7"),
V(ClientBootstrapConsensusMaxDownloadTries, UINT, "7"),
/* We want to give up much earlier if we're only using authorities. */
V(TestingClientBootstrapConsensusAuthorityOnlyMaxDownloadTries, UINT, "4"),
V(ClientBootstrapConsensusAuthorityOnlyMaxDownloadTries, UINT, "4"),
V(TestingDescriptorMaxDownloadTries, UINT, "8"),
V(TestingMicrodescMaxDownloadTries, UINT, "8"),
V(TestingCertMaxDownloadTries, UINT, "8"),
@ -537,6 +537,14 @@ static const config_var_t testing_tor_network_defaults[] = {
V(AssumeReachable, BOOL, "1"),
V(AuthDirMaxServersPerAddr, UINT, "0"),
V(AuthDirMaxServersPerAuthAddr,UINT, "0"),
V(ClientBootstrapConsensusAuthorityDownloadSchedule, CSV_INTERVAL,
"0, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 16, 32, 60"),
V(ClientBootstrapConsensusFallbackDownloadSchedule, CSV_INTERVAL,
"0, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 16, 32, 60"),
V(ClientBootstrapConsensusAuthorityOnlyDownloadSchedule, CSV_INTERVAL,
"0, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 16, 32, 60"),
V(ClientBootstrapConsensusMaxDownloadTries, UINT, "80"),
V(ClientBootstrapConsensusAuthorityOnlyMaxDownloadTries, UINT, "80"),
V(ClientDNSRejectInternalAddresses, BOOL,"0"),
V(ClientRejectInternalAddresses, BOOL, "0"),
V(CountPrivateBandwidth, BOOL, "1"),
@ -560,18 +568,10 @@ static const config_var_t testing_tor_network_defaults[] = {
"15, 20, 30, 60"),
V(TestingClientConsensusDownloadSchedule, CSV_INTERVAL, "0, 0, 5, 10, "
"15, 20, 30, 60"),
V(TestingClientBootstrapConsensusAuthorityDownloadSchedule, CSV_INTERVAL,
"0, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 16, 32, 60"),
V(TestingClientBootstrapConsensusFallbackDownloadSchedule, CSV_INTERVAL,
"0, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 16, 32, 60"),
V(TestingClientBootstrapConsensusAuthorityOnlyDownloadSchedule, CSV_INTERVAL,
"0, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 16, 32, 60"),
V(TestingBridgeDownloadSchedule, CSV_INTERVAL, "60, 30, 30, 60"),
V(TestingClientMaxIntervalWithoutRequest, INTERVAL, "5 seconds"),
V(TestingDirConnectionMaxStall, INTERVAL, "30 seconds"),
V(TestingConsensusMaxDownloadTries, UINT, "80"),
V(TestingClientBootstrapConsensusMaxDownloadTries, UINT, "80"),
V(TestingClientBootstrapConsensusAuthorityOnlyMaxDownloadTries, UINT, "80"),
V(TestingDescriptorMaxDownloadTries, UINT, "80"),
V(TestingMicrodescMaxDownloadTries, UINT, "80"),
V(TestingCertMaxDownloadTries, UINT, "80"),
@ -3863,16 +3863,10 @@ options_validate(or_options_t *old_options, or_options_t *options,
CHECK_DEFAULT(TestingClientDownloadSchedule);
CHECK_DEFAULT(TestingServerConsensusDownloadSchedule);
CHECK_DEFAULT(TestingClientConsensusDownloadSchedule);
CHECK_DEFAULT(TestingClientBootstrapConsensusAuthorityDownloadSchedule);
CHECK_DEFAULT(TestingClientBootstrapConsensusFallbackDownloadSchedule);
CHECK_DEFAULT(TestingClientBootstrapConsensusAuthorityOnlyDownloadSchedule);
CHECK_DEFAULT(TestingBridgeDownloadSchedule);
CHECK_DEFAULT(TestingClientMaxIntervalWithoutRequest);
CHECK_DEFAULT(TestingDirConnectionMaxStall);
CHECK_DEFAULT(TestingConsensusMaxDownloadTries);
CHECK_DEFAULT(TestingClientBootstrapConsensusMaxDownloadTries);
CHECK_DEFAULT(TestingClientBootstrapConsensusAuthorityOnlyMaxDownloadTries);
CHECK_DEFAULT(TestingClientBootstrapConsensusMaxInProgressTries);
CHECK_DEFAULT(TestingDescriptorMaxDownloadTries);
CHECK_DEFAULT(TestingMicrodescMaxDownloadTries);
CHECK_DEFAULT(TestingCertMaxDownloadTries);
@ -3952,33 +3946,33 @@ options_validate(or_options_t *old_options, or_options_t *options,
COMPLAIN("TestingConsensusMaxDownloadTries is insanely high.");
}
if (options->TestingClientBootstrapConsensusMaxDownloadTries < 2) {
REJECT("TestingClientBootstrapConsensusMaxDownloadTries must be greater "
if (options->ClientBootstrapConsensusMaxDownloadTries < 2) {
REJECT("ClientBootstrapConsensusMaxDownloadTries must be greater "
"than 2."
);
} else if (options->TestingClientBootstrapConsensusMaxDownloadTries > 800) {
COMPLAIN("TestingClientBootstrapConsensusMaxDownloadTries is insanely "
} else if (options->ClientBootstrapConsensusMaxDownloadTries > 800) {
COMPLAIN("ClientBootstrapConsensusMaxDownloadTries is insanely "
"high.");
}
if (options->TestingClientBootstrapConsensusAuthorityOnlyMaxDownloadTries
if (options->ClientBootstrapConsensusAuthorityOnlyMaxDownloadTries
< 2) {
REJECT("TestingClientBootstrapConsensusAuthorityOnlyMaxDownloadTries must "
REJECT("ClientBootstrapConsensusAuthorityOnlyMaxDownloadTries must "
"be greater than 2."
);
} else if (
options->TestingClientBootstrapConsensusAuthorityOnlyMaxDownloadTries
options->ClientBootstrapConsensusAuthorityOnlyMaxDownloadTries
> 800) {
COMPLAIN("TestingClientBootstrapConsensusAuthorityOnlyMaxDownloadTries is "
COMPLAIN("ClientBootstrapConsensusAuthorityOnlyMaxDownloadTries is "
"insanely high.");
}
if (options->TestingClientBootstrapConsensusMaxInProgressTries < 1) {
REJECT("TestingClientBootstrapConsensusMaxInProgressTries must be greater "
if (options->ClientBootstrapConsensusMaxInProgressTries < 1) {
REJECT("ClientBootstrapConsensusMaxInProgressTries must be greater "
"than 0.");
} else if (options->TestingClientBootstrapConsensusMaxInProgressTries
} else if (options->ClientBootstrapConsensusMaxInProgressTries
> 100) {
COMPLAIN("TestingClientBootstrapConsensusMaxInProgressTries is insanely "
COMPLAIN("ClientBootstrapConsensusMaxInProgressTries is insanely "
"high.");
}

View File

@ -3896,17 +3896,17 @@ find_dl_schedule(download_status_t *dls, const or_options_t *options)
if (!use_fallbacks) {
/* A bootstrapping client without extra fallback directories */
return
options->TestingClientBootstrapConsensusAuthorityOnlyDownloadSchedule;
options->ClientBootstrapConsensusAuthorityOnlyDownloadSchedule;
} else if (dls->want_authority) {
/* A bootstrapping client with extra fallback directories, but
* connecting to an authority */
return
options->TestingClientBootstrapConsensusAuthorityDownloadSchedule;
options->ClientBootstrapConsensusAuthorityDownloadSchedule;
} else {
/* A bootstrapping client connecting to extra fallback directories
*/
return
options->TestingClientBootstrapConsensusFallbackDownloadSchedule;
options->ClientBootstrapConsensusFallbackDownloadSchedule;
}
} else {
return options->TestingClientConsensusDownloadSchedule;

View File

@ -802,10 +802,10 @@ consensus_max_download_tries(const or_options_t *options,
if (we_are_bootstrapping) {
if (use_fallbacks) {
return options->TestingClientBootstrapConsensusMaxDownloadTries;
return options->ClientBootstrapConsensusMaxDownloadTries;
} else {
return
options->TestingClientBootstrapConsensusAuthorityOnlyMaxDownloadTries;
options->ClientBootstrapConsensusAuthorityOnlyMaxDownloadTries;
}
}
@ -850,7 +850,7 @@ update_consensus_networkstatus_downloads(time_t now)
/* Check if we already have enough connections in progress */
if (we_are_bootstrapping) {
max_in_progress_conns =
options->TestingClientBootstrapConsensusMaxInProgressTries;
options->ClientBootstrapConsensusMaxInProgressTries;
}
if (connection_dir_count_by_purpose_and_resource(
DIR_PURPOSE_FETCH_CONSENSUS,

View File

@ -4188,7 +4188,7 @@ typedef struct {
* This schedule is incremented by (potentially concurrent) connection
* attempts, unlike other schedules, which are incremented by connection
* failures. Only altered on testing networks. */
smartlist_t *TestingClientBootstrapConsensusAuthorityDownloadSchedule;
smartlist_t *ClientBootstrapConsensusAuthorityDownloadSchedule;
/** Schedule for when clients should download consensuses from fallback
* directory mirrors if they are bootstrapping (that is, they don't have a
@ -4198,7 +4198,7 @@ typedef struct {
* This schedule is incremented by (potentially concurrent) connection
* attempts, unlike other schedules, which are incremented by connection
* failures. Only altered on testing networks. */
smartlist_t *TestingClientBootstrapConsensusFallbackDownloadSchedule;
smartlist_t *ClientBootstrapConsensusFallbackDownloadSchedule;
/** Schedule for when clients should download consensuses from authorities
* if they are bootstrapping (that is, they don't have a usable, reasonably
@ -4208,7 +4208,7 @@ typedef struct {
* This schedule is incremented by (potentially concurrent) connection
* attempts, unlike other schedules, which are incremented by connection
* failures. Only altered on testing networks. */
smartlist_t *TestingClientBootstrapConsensusAuthorityOnlyDownloadSchedule;
smartlist_t *ClientBootstrapConsensusAuthorityOnlyDownloadSchedule;
/** Schedule for when clients should download bridge descriptors. Only
* altered on testing networks. */
@ -4230,17 +4230,17 @@ typedef struct {
/** How many times will a client try to fetch a consensus while
* bootstrapping using a list of fallback directories, before it gives up?
* Only altered on testing networks. */
int TestingClientBootstrapConsensusMaxDownloadTries;
int ClientBootstrapConsensusMaxDownloadTries;
/** How many times will a client try to fetch a consensus while
* bootstrapping using only a list of authorities, before it gives up?
* Only altered on testing networks. */
int TestingClientBootstrapConsensusAuthorityOnlyMaxDownloadTries;
int ClientBootstrapConsensusAuthorityOnlyMaxDownloadTries;
/** How many simultaneous in-progress connections will we make when trying
* to fetch a consensus before we wait for one to complete, timeout, or
* error out? Only altered on testing networks. */
int TestingClientBootstrapConsensusMaxInProgressTries;
int ClientBootstrapConsensusMaxInProgressTries;
/** How many times will we try to download a router's descriptor before
* giving up? Only altered on testing networks. */

View File

@ -307,9 +307,9 @@ fixed_get_uname(void)
}
#define TEST_OPTIONS_OLD_VALUES "TestingV3AuthInitialVotingInterval 1800\n" \
"TestingClientBootstrapConsensusMaxDownloadTries 7\n" \
"TestingClientBootstrapConsensusAuthorityOnlyMaxDownloadTries 4\n" \
"TestingClientBootstrapConsensusMaxInProgressTries 3\n" \
"ClientBootstrapConsensusMaxDownloadTries 7\n" \
"ClientBootstrapConsensusAuthorityOnlyMaxDownloadTries 4\n" \
"ClientBootstrapConsensusMaxInProgressTries 3\n" \
"TestingV3AuthInitialVoteDelay 300\n" \
"TestingV3AuthInitialDistDelay 300\n" \
"TestingClientMaxIntervalWithoutRequest 600\n" \