Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
Trac
Trac
  • Project overview
    • Project overview
    • Details
    • Activity
  • Issues 246
    • Issues 246
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Operations
    • Operations
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Create a new issue
  • Issue Boards

GitLab is used only for code review, issue tracking and project management. Canonical locations for source code are still https://gitweb.torproject.org/ https://git.torproject.org/ and git-rw.torproject.org.

  • Legacy
  • TracTrac
  • Issues
  • #12656

Closed (moved)
Open
Opened Jul 19, 2014 by Karsten Loesing@karsten

Calculating path selection probabilities shouldn't depend on parsing a new consensus

The current implementation in NodeDetailsStatusUpdater calculates guard, middle, and exit probability using bandwidth weights (Wgg, Wgd, etc.) from the most recent of all parsed consensuses. This approach breaks if no consensus was parsed, and as a result, all relays' guard/middle/exit probabilities are set to 0.0. This happend a few days ago, because it took CollecTor more than 10 minutes to fetch and provide a current consensus from the directory authorities, which was too late for the hourly Onionoo run.

This is also bad design, because right now, JSON documents depend on more than what's contained in internal status files. We may want to add a mode of operation that rewrites all JSON documents. That is currently not possible.

A possible fix would be to make all attributes of NodeStatus persistent. The downside is that we may not need those contents in the servlet, so this change would needlessly slow down populating the servlet's search index.

Another fix would be to move all non-persistent attributes from NodeStatus to DetailsStatus. That includes guard/middle/exit probabilities, but maybe also other fields. Not sure about downsides yet.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: legacy/trac#12656