From 0dc55fb24756c5ae80e71f6fce93d97d73efd2fc Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Wed, 8 Nov 2017 13:22:16 -0500 Subject: 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. --- src/or/routerlist.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/or') diff --git a/src/or/routerlist.c b/src/or/routerlist.c index 2365f28fd2..1b7c81ad5f 100644 --- a/src/or/routerlist.c +++ b/src/or/routerlist.c @@ -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 */ -- cgit v1.2.3-54-g00ecf