Opened 17 months ago

Last modified 15 months ago

#22403 new defect

Reset downloads more consistently

Reported by: teor Owned by:
Priority: Medium Milestone: Tor: unspecified
Component: Core Tor/Tor Version:
Severity: Normal Keywords: tor-bootstrap tor-client refactor technal-debt directory-protocol
Cc: Actual Points:
Parent ID: Points: 2
Reviewer: Sponsor:

Description

Split off #17750.

When we go to reset downloads, I think we want to call:

  • router_reset_descriptor_download_failures, and
  • router_reset_status_download_failures.

But:

  • router_reset_descriptor_download_failures doesn't reset:
    • authority_cert_t.dl_status_by_id,
    • cert_list_t.dl_status_map,
    • bridge_info_t.fetch_status,
    • routerstatus_t.dl_status
  • router_reset_status_download_failures only resets fallback directory mirrors, and not anything that's just in the consensus.

We should do two things:

  • reset all the download statuses and down flags we want to reset in one place, and
  • call that function at startup (or when a download status is created) as well as when we HUP or want to reset failed downloads.

But when we do this, we should make sure we haven't created slow or fast zombies.

Child Tickets

Change History (2)

comment:1 Changed 17 months ago by teor

Due to #17750, the initial download status resets only matter when we access the struct fields directly, and then only for schedules with non-zero starting values (ClientBootstrapConsensusAuthorityDownloadSchedule and TestingBridgeDownloadSchedule).

comment:2 Changed 15 months ago by nickm

Keywords: tor-client refactor technal-debt directory-protocol added
Note: See TracTickets for help on using tickets.