[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
Mon Apr 27 09:08:32 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, easy                           |
Parent ID:  #33050                               |         Points:  1
 Reviewer:                                       |        Sponsor:
                                                 |  Sponsor55-can
-------------------------------------------------+-------------------------

Old description:

> When `AssumeReachable` is set on bridges, there's a race condition when
> bridges try to publish their descriptor to the bridge authority:
> * bridges try to publish their descriptors before bootstrapping
> * but bridges can't publish their descriptors, because they don't have
> enough directory info to build a circuit to the bridge authority
>
> Bridges will eventually try to publish their descriptors again, when they
> become dirty.
>
> We should make bridges wait until they have bootstrapped, before they try
> to publish their descriptors. (This might be a good change for relays as
> well: there isn't much point in publishing a relay that can't bootstrap.)

New description:

 On bridges, there's a race condition when bridges try to publish their
 descriptor to the bridge authority:
 * bridges try to publish their descriptors before bootstrapping
 * but bridges can't publish their descriptors, because they don't have
 enough directory info to build a circuit to the bridge authority

 Bridges will eventually try to publish their descriptors again, when they
 become dirty.

 We should make bridges wait until they have bootstrapped, before they try
 to publish their descriptors. (This might be a good change for relays as
 well: there isn't much point in publishing a relay that can't bootstrap.)

 This issue happens regardless of `AssumeReachable`. It is most obvious in
 chutney networks.

--

Comment (by teor):

 Replying to [comment:2 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.

 It turns out that this isn't true, either.

 Tor's current relay and bridge reachability self-test only checks for the
 first inbound CREATE cell. This cell can be sent by a bridge client, even
 before the bridge has bootstrapped.

 We might end up fixing this bug in #33222, if we check for returned
 CREATED cells *and* their corresponding inbound CREATE cells, rather than
 just inbound CREATE cells.

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


More information about the tor-bugs mailing list