Dirservers miscount networkstatus fetches when they don't complete

Directory servers (mirrors and authorities) track how many networkstatus documents they have served, and these stats are used to estimate how many Tor clients are running in the world.

But we are miscounting in the case where we start serving a networkstatus but do not succeed at sending all of the bytes for it.

Two cases where this miscount has a big impact on our user estimates are:

  • Obsolete clients like in #41191 (closed) where we hang up on the connection before we finish serving the networkstatus document, causing the client to try fetching more networkstatus documents faster than we expect.

  • DPI-based censorship, where for example Tor clients in Turkey in the past would succeed at reaching their guard and asking for a consensus, but then their connection would get killed by some middlebox before they could finish -- also causing them to try again faster than we expect.

Assignee Loading
Time tracking Loading