[tor-bugs] #33582 [Core Tor/Tor]: Make bridges wait until they have bootstrapped, before publishing their descriptor

Tor Bug Tracker & Wiki blackhole at torproject.org
Thu Mar 12 03:00:55 UTC 2020


#33582: Make bridges wait until they have bootstrapped, before publishing their
descriptor
-------------------------------------------------+-------------------------
 Reporter:  teor                                 |          Owner:  (none)
     Type:  defect                               |         Status:  new
 Priority:  Medium                               |      Milestone:  Tor:
                                                 |  0.4.4.x-final
Component:  Core Tor/Tor                         |        Version:
 Severity:  Normal                               |     Resolution:
 Keywords:  tor-bridge, tor-relay, prop311,      |  Actual Points:
  outreachy-ipv6                                 |
Parent ID:  #33232                               |         Points:  1
 Reviewer:                                       |        Sponsor:
                                                 |  Sponsor55-can
-------------------------------------------------+-------------------------

Comment (by teor):

 Replying to [comment:1 arma]:
 > To clarify, right now both bridges and relays *do* wait until they have
 reached 100% bootstrapped, if AssumeReachable is default (0)? But this bug
 appears when AssumeReachable is set to 1, and then it tries to publish
 without regard for whether it has bootstrapped to 100%?

 That's not quite right.

 When AssumeReachable is 1, relays and bridges wait until they have done
 reachability self-checks. These self-checks can't happen until the
 relay/bridge is 100% bootstrapped.

 AssumeReachable 1 breaks the dependency between descriptor publication and
 reachability self-checks. (Which is fine for relays, but transitive 100%
 bootstrap requirement is needed for bridges.)

 In detail:

 If AssumeReachable is 0, then relays and bridges:
 1. Bootstrap, then they have enough descriptors to build circuits to
 2. Perform reachability self-checks, then they decide to
 3. Publish their descriptor.

 If AssumeReachable is 1, then relays:
 1. Immediately publish their descriptor to all directory authority
 DirPorts.

 If AssumeReachable is 1, then bridges:
 1. Immediately try to publish their descriptor to the bridge authority
 ORPort, but fail, because they don't have enough descriptors to build
 circuits.
 2. Bootstrap, then they have enough descriptors to build circuits.
 3. Eventually, their descriptor becomes dirty again, and they decide to
 publish it to the bridge authority ORPort, and succeed.

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


More information about the tor-bugs mailing list