Trac issueshttps://gitlab.torproject.org/legacy/trac/-/issues2020-06-13T15:15:29Zhttps://gitlab.torproject.org/legacy/trac/-/issues/23817Tor re-tries directory mirrors that it knows are missing microdescriptors2020-06-13T15:15:29ZteorTor re-tries directory mirrors that it knows are missing microdescriptorsWhen a microdescriptor for a relay changes, it takes a while to propagate to directory mirrors. In this time, a client can:
1. Download a consensus that references the new microdescriptor
2. Try a directory mirror that has an older conse...When a microdescriptor for a relay changes, it takes a while to propagate to directory mirrors. In this time, a client can:
1. Download a consensus that references the new microdescriptor
2. Try a directory mirror that has an older consensus, and therefore doesn't have that microdescriptor
3. Repeat 2
This is a particular issue when:
* the client first bootstraps, and the fallback or authority provides a newer consensus than any of its directory mirrors
* the client has been asleep for a while, and its consensus has expired, so it fetches one straight away
* only 1/3 of a client's directory guards has the new consensus
We can fix this by:
* making clients try the same directory mirror for their consensus and microdescriptors
* making clients avoid directory mirrors with missing microdescriptors
* making clients use a fallback when all of their directory mirrors don't have a microdescriptor
This issue affects primary guards and v3 onion services.Tor: 0.3.1.x-final