We have two different places that calculate bootstrap progress
count_loading_descriptors_progress() calculates whether we've got enough descriptors using:
count_usable_descriptors(&num_present, &num_usable, NULL,
consensus, get_options(), now, NULL, 0);
fraction = num_present / (num_usable/4.);
whereas update_router_have_minimum_dir_info() does it using
double paths = compute_frac_paths_available(consensus, options, now,
&num_present, &num_usable,
&status);
if (paths < get_frac_paths_needed_for_circs(options,consensus)) {
We should do the second one in both places. (I have a patch.)