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

2020-05-17 Thread Tor Bug Tracker & Wiki
#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
-+-
Description changed by teor:

Old description:

> Instead of this fix, we can make chutney check tor's logs for
> reachability self-test successes. See #34037.
>
> 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.
>
> This ticket isn't essential. But the workarounds seem to cause weird race
> conditions, which are time-consuming to diagnose and fix.

New description:

 Instead of this fix, we can make chutney check tor's logs for reachability
 self-test successes (#34037), or implement strict self-tests (#33222).

 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.

 This ticket isn't essential. But the workarounds seem to cause weird race
 conditions, which are time-consuming to diagnose and fix.

--

--
Ticket URL: 
Tor Bug Tracker & Wiki 
The Tor Project: anonymity online
___
tor-bugs mailing list
tor-bugs@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs

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

2020-04-28 Thread Tor Bug Tracker & Wiki
#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
-+-
Description changed by teor:

Old description:

> Instead of this fix, we can make chutney check tor's logs for
> reachability self-test successes. See #34037.
>
> 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.

New description:

 Instead of this fix, we can make chutney check tor's logs for reachability
 self-test successes. See #34037.

 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.

 This ticket isn't essential. But the workarounds seem to cause weird race
 conditions, which are time-consuming to diagnose and fix.

--

--
Ticket URL: 
Tor Bug Tracker & Wiki 
The Tor Project: anonymity online
___
tor-bugs mailing list
tor-bugs@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs

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

2020-04-27 Thread Tor Bug Tracker & Wiki
#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:

> 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.

New description:

 Instead of this fix, we can make chutney check tor's logs for reachability
 self-test successes. See #34037.

 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):

 Instead of this fix, we can make chutney check tor's logs for reachability
 self-test successes. See #34037.

--
Ticket URL: 
Tor Bug Tracker & Wiki 
The Tor Project: anonymity online
___
tor-bugs mailing list
tor-bugs@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs

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

2020-04-27 Thread Tor Bug Tracker & Wiki
#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: 
Tor Bug Tracker & Wiki 
The Tor Project: anonymity online
___
tor-bugs mailing list
tor-bugs@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs

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

2020-03-19 Thread Tor Bug Tracker & Wiki
#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
-+-
Changes (by teor):

 * keywords:  tor-bridge, tor-relay, prop311, outreachy-ipv6 => tor-bridge,
 tor-relay, prop311, outreachy-ipv6, easy


--
Ticket URL: 
Tor Bug Tracker & Wiki 
The Tor Project: anonymity online
___
tor-bugs mailing list
tor-bugs@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs

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

2020-03-12 Thread Tor Bug Tracker & Wiki
#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:  #33050   | Points:  1
 Reviewer:   |Sponsor:
 |  Sponsor55-can
-+-
Changes (by teor):

 * parent:  #33232 => #33050


--
Ticket URL: 
Tor Bug Tracker & Wiki 
The Tor Project: anonymity online
___
tor-bugs mailing list
tor-bugs@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs

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

2020-03-12 Thread Tor Bug Tracker & Wiki
#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):

 #33583 doesn't fix this issue, because bridges think they are reachable as
 soon as the bridge client connects to them.

 For details, see:
 https://gitweb.torproject.org/torspec.git/tree/proposals/311-relay-
 ipv6-reachability.txt#n498

--
Ticket URL: 
Tor Bug Tracker & Wiki 
The Tor Project: anonymity online
___
tor-bugs mailing list
tor-bugs@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs

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

2020-03-11 Thread Tor Bug Tracker & Wiki
#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: 
Tor Bug Tracker & Wiki 
The Tor Project: anonymity online
___
tor-bugs mailing list
tor-bugs@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs

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

2020-03-09 Thread Tor Bug Tracker & Wiki
#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 arma):

 Yes please, this sounds like a fine plan.

 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%?

--
Ticket URL: 
Tor Bug Tracker & Wiki 
The Tor Project: anonymity online
___
tor-bugs mailing list
tor-bugs@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs

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

2020-03-09 Thread Tor Bug Tracker & Wiki
#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 |Version:
  Tor/Tor|   Keywords:  tor-bridge, tor-relay, prop311,
 Severity:  Normal   |  outreachy-ipv6
Actual Points:   |  Parent ID:  #33232
   Points:  1|   Reviewer:
  Sponsor:   |
  Sponsor55-can  |
-+-
 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.)

--
Ticket URL: 
Tor Bug Tracker & Wiki 
The Tor Project: anonymity online
___
tor-bugs mailing list
tor-bugs@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs