Don't delay descriptor fetches when missing info needed for circuits
When we have fewer than 15 descriptors to fetch, we will delay the fetch for a little while. That's fine, if we can go ahead and build circuits... but if not, it's a poor choice indeed. Fixes bug 23985; bugfix on 0.1.1.11-alpha. In 0.3.0.3-alpha, when we made primary guard descriptors necessary for circuit building, this situation got worse.
This commit is contained in:
parent
04d4786cc4
commit
0dc55fb247
|
@ -0,0 +1,9 @@
|
|||
o Minor bugfixes (bootstrapping):
|
||||
- Fetch descriptors aggressively whenever we lack enough
|
||||
to build circuits, regardless of how many descriptors we are missing.
|
||||
Previously, we would delay launching the fetch when we had fewer than
|
||||
15 missing descriptors, even if some of those descriptors were
|
||||
blocking circuits from building. Fixes bug 23985; bugfix on
|
||||
0.1.1.11-alpha. The effects of this bug became worse in 0.3.0.3-alpha,
|
||||
when we began treating missing descriptors from our primary guards
|
||||
as a reason to delay circuits.
|
|
@ -5035,6 +5035,11 @@ launch_descriptor_downloads(int purpose,
|
|||
log_debug(LD_DIR,
|
||||
"There are enough downloadable %ss to launch requests.",
|
||||
descname);
|
||||
} else if (! router_have_minimum_dir_info()) {
|
||||
log_debug(LD_DIR,
|
||||
"We are only missing %d %ss, but we'll fetch anyway, since "
|
||||
"we don't yet have enough directory info.",
|
||||
n_downloadable, descname);
|
||||
} else {
|
||||
|
||||
/* should delay */
|
||||
|
|
Loading…
Reference in New Issue