mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-22 14:23:04 +01:00
Avoid checking fallback candidates' DirPorts if they are down in OnionOO
Exclude relays that have been down for 1 or more days from the fallback candidate list. When a relay operator has multiple relays, this prioritises relays that are up over relays that are down. Fixes issue #20926.
This commit is contained in:
parent
4c832bcfac
commit
2d2bbaf259
2 changed files with 14 additions and 6 deletions
|
@ -25,6 +25,10 @@
|
|||
fallbacks.) Closes ticket 20912.
|
||||
- Reduce the minimum fallback bandwidth to 1 MByte/s.
|
||||
Part of #18828.
|
||||
o Minor bugfix (fallback directories):
|
||||
o Minor bugfixes (fallback directories):
|
||||
- Stop failing when OUTPUT_COMMENTS is True in updateFallbackDirs.py.
|
||||
Closes ticket 20877; bugfix on commit 9998343 in tor-0.2.8.3-alpha.
|
||||
- Avoid checking fallback candidates' DirPorts if they are down in
|
||||
OnionOO. When a relay operator has multiple relays, this prioritises
|
||||
relays that are up over relays that are down.
|
||||
Closes ticket #20926; bugfix on 0.2.8.3-alpha.
|
||||
|
|
|
@ -81,6 +81,10 @@ PERFORM_IPV4_DIRPORT_CHECKS = False if OUTPUT_CANDIDATES else True
|
|||
# Don't check ~1000 candidates when OUTPUT_CANDIDATES is True
|
||||
PERFORM_IPV6_DIRPORT_CHECKS = False if OUTPUT_CANDIDATES else False
|
||||
|
||||
# Must relays be running now?
|
||||
MUST_BE_RUNNING_NOW = (PERFORM_IPV4_DIRPORT_CHECKS
|
||||
or PERFORM_IPV6_DIRPORT_CHECKS)
|
||||
|
||||
# Clients have been using microdesc consensuses by default for a while now
|
||||
DOWNLOAD_MICRODESC_CONSENSUS = True
|
||||
|
||||
|
@ -145,6 +149,8 @@ MAX_LIST_FILE_SIZE = 1024 * 1024
|
|||
# Affected relays should upgrade to Tor 0.2.8.7 or later, which has a fix
|
||||
# for this issue.
|
||||
ADDRESS_AND_PORT_STABLE_DAYS = 7
|
||||
# We ignore relays that have been down for more than this period
|
||||
MAX_DOWNTIME_DAYS = 0 if MUST_BE_RUNNING_NOW else 7
|
||||
# What time-weighted-fraction of these flags must FallbackDirs
|
||||
# Equal or Exceed?
|
||||
CUTOFF_RUNNING = .90
|
||||
|
@ -387,8 +393,8 @@ def onionoo_fetch(what, **kwargs):
|
|||
params = kwargs
|
||||
params['type'] = 'relay'
|
||||
#params['limit'] = 10
|
||||
params['first_seen_days'] = '%d-'%(ADDRESS_AND_PORT_STABLE_DAYS,)
|
||||
params['last_seen_days'] = '-7'
|
||||
params['first_seen_days'] = '%d-'%(ADDRESS_AND_PORT_STABLE_DAYS)
|
||||
params['last_seen_days'] = '-%d'%(MAX_DOWNTIME_DAYS)
|
||||
params['flag'] = 'V2Dir'
|
||||
url = ONIONOO + what + '?' + urllib.urlencode(params)
|
||||
|
||||
|
@ -843,9 +849,7 @@ class Candidate(object):
|
|||
self._badexit = self._avg_generic_history(badexit) / ONIONOO_SCALE_ONE
|
||||
|
||||
def is_candidate(self):
|
||||
must_be_running_now = (PERFORM_IPV4_DIRPORT_CHECKS
|
||||
or PERFORM_IPV6_DIRPORT_CHECKS)
|
||||
if (must_be_running_now and not self.is_running()):
|
||||
if (MUST_BE_RUNNING_NOW and not self.is_running()):
|
||||
logging.info('%s not a candidate: not running now, unable to check ' +
|
||||
'DirPort consensus download', self._fpr)
|
||||
return False
|
||||
|
|
Loading…
Add table
Reference in a new issue