From 4fc43ebdeefb2baef3908ddedc41e76c40359759 Mon Sep 17 00:00:00 2001 From: Jim Newsome Date: Thu, 7 Mar 2024 12:32:02 -0600 Subject: In router_is_active, don't require non-zero bandwidthcapacity This check was originally added in 962765a3, with the intent of preventing relays with 0 measured bandwidth from being listed in the consensus (part of fixing #13000). Currently, that decision and other relevant places effectively use `dirserv_get_credible_bandwidth_kb`, which prefers bwauth-measured bandwidth over the self-reported `bandwidthcapacity`, making this check mostly redundant. i.e. this change should only affect behavior when the relay has uploaded a descriptor with `bandwidthcapacity=0` *and* we have a non-zero measured bandwidth, in which case we'll still trust the measured bandwidth. This is what we want when bootstrapping a network (e.g. for testing), since it allows us to initialize bandwidths using a bandwidth authority file. A relay can still cause `router_is_active` to return false by setting the hibernate flag. Also see discussion in #40917. Fixes #40917. --- src/feature/dirauth/voteflags.c | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/src/feature/dirauth/voteflags.c b/src/feature/dirauth/voteflags.c index 71ee03e265..2fbac47b30 100644 --- a/src/feature/dirauth/voteflags.c +++ b/src/feature/dirauth/voteflags.c @@ -112,8 +112,7 @@ dirserv_thinks_router_is_unreliable(time_t now, } /** Return 1 if ri's descriptor is "active" -- running, valid, - * not hibernating, having observed bw greater 0, and not too old. Else - * return 0. + * not hibernating, and not too old. Else return 0. */ static int router_is_active(const routerinfo_t *ri, const node_t *node, time_t now) @@ -125,20 +124,6 @@ router_is_active(const routerinfo_t *ri, const node_t *node, time_t now) if (!node->is_running || !node->is_valid || ri->is_hibernating) { return 0; } - /* Only require bandwidth capacity in non-test networks, or - * if TestingTorNetwork, and TestingMinExitFlagThreshold is non-zero */ - if (!ri->bandwidthcapacity) { - if (get_options()->TestingTorNetwork) { - if (dirauth_get_options()->TestingMinExitFlagThreshold > 0) { - /* If we're in a TestingTorNetwork, and TestingMinExitFlagThreshold is, - * then require bandwidthcapacity */ - return 0; - } - } else { - /* If we're not in a TestingTorNetwork, then require bandwidthcapacity */ - return 0; - } - } return 1; } -- cgit v1.2.3-54-g00ecf