On 6 May 2016, at 21:52, Roger Dingledine arma@mit.edu wrote:
(Normally, a client won't re-use any of its 3 guards as a middle or exit. TestingTorNetwork disables this behaviour.
Tim: I think this statement might be wrong? Tor picks its exit first, then picks a current guard that doesn't overlap with the exit, then picks a middle that doesn't overlap with either of them.
See e.g. choose_good_middle_server().
Apologies, I didn't remember or explain the details of path selection very well.
When tor is selecting an entry node for CIRCUIT_PURPOSE_TESTING in choose_good_entry_server(), it excludes all guard nodes, and excludes the exit. This can mean that 1 exit, 3 (or more) directory guards, and possibly another 3 (or more) entry guards are excluded. The entry guards are not necessarily the same as the directory guards (this can happen if the directory guards do not have descriptors, or the entry guards are not directories).
So if you're excluding 7 or more nodes in a small network, this can cause path selection failures. Of course, it could be that entry guard selection is failing for other reasons, like a lack of nodes in the consensus.
Without context from the logs, it's hard to tell whether it's testing circuits or standard circuits that are causing the path failures.
Tim
Tim Wilson-Brown (teor)
teor2345 at gmail dot com PGP 968F094B ricochet:ekmygaiu4rzgsk6n