[metrics-bugs] #30636 [Metrics/Analysis]: Something funky is going in Iran: numbers of relay users flies off to 1M+

Tor Bug Tracker & Wiki blackhole at torproject.org
Sun Jun 23 05:05:32 UTC 2019


#30636: Something funky is going in Iran: numbers of relay users flies off to 1M+
------------------------------+------------------------------
 Reporter:  cypherpunks       |          Owner:  metrics-team
     Type:  task              |         Status:  new
 Priority:  Medium            |      Milestone:
Component:  Metrics/Analysis  |        Version:
 Severity:  Normal            |     Resolution:
 Keywords:  ir                |  Actual Points:
Parent ID:                    |         Points:
 Reviewer:                    |        Sponsor:
------------------------------+------------------------------

Comment (by arma):

 Two more data points here:

 (A) I am coming to believe that our user count numbers are based on
 counting requests, not on counting successful deliveries of the consensus.
 So if a client gets far enough through the process to request a
 connection, but then has their connection cut, (1) we will count them as a
 user, and (2) they will come back somewhere else soon after to retry, and
 we'll count that next one as a new user. I am beginning to suspect that a
 factor in what's happening here. But that still doesn't explain why the
 number keeps going up -- it's not like clients start asking more and more
 frequently as they fail more often.

 (B) We do have a count of successful consensus deliveries, vs delivery
 attempts that time out. Dir mirrors can't tell whether the client receives
 all the bytes, but because the consensus takes more than one stream window
 worth of cells to deliver, the dir mirrors can tell that all but the last
 stream window (250KB) of cells were acknowledged by the client. *But*,
 with the advent of consensus diffs, the entire diff fits within a single
 stream window, so every time a client asks for a diff, we're going to
 count that delivery as a success, even if no bytes actually make it to the
 client.

 (B') And while we're on that topic, there actually *is* a way to learn
 whether the client received the last part -- see the concern in
 https://trac.torproject.org/projects/tor/ticket/30926#comment:3 where we
 get a stream-level sendme for an unknown streamid. That happens when we've
 finished sending all of the consensus bytes, and then we send the end
 cell, and then we close the stream on our side, and we get a sendme with
 an unknown streamid because we've already forgotten about the stream. But
 all of the data is there for us to be able to confirm that the client has
 received (nearly all of) the bytes, if we want to.

 We should probably make a bunch of tickets out of these various bugs and
 feature ideas, but I wanted to get them written up somewhere first.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/30636#comment:24>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the metrics-bugs mailing list