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.
--- /dev/null
+ 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.
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 */