Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Tor Tor
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 823
    • Issues 823
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 30
    • Merge requests 30
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • The Tor Project
  • Core
  • TorTor
  • Issues
  • #3543
Closed
Open
Created Jul 07, 2011 by Nick Mathewson@nickm🐛Owner

Too many absent v2 networkstatuses means caches can't purge their routerlist

Reported by frosty_un.

In routerlist_remove_old_routers, we don't actually purge old unlisted routers unless (have_enough_v2 && consensus). But if enough v2 authorities are down, have_enough_v2 might never be true on systems where !directory_caches_dir_info(). This could lead to OOM conditions on directory caches.

One easy but hackish way to fix this is to remove the "have_enough_v2" precondition and instead change the cutoff so that it remains at ROUTER_MAX_AGE when have_enough_v2 is true, but becomes (say) ROUTER_MAX_AGE*3 when !have_enough_v2.

A less easy way would be to change the requirement from "we have more than half of the v2 networkstatuses" to "for at least half of the v2 networkstatuses, we have it, or we have tried but failed to download it for at least N hours."

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking