[tor-bugs] #3443 [Tor]: Client with low CBT can't establish any circuits

Tor Bug Tracker & Wiki blackhole at torproject.org
Fri Nov 30 13:23:20 UTC 2012


#3443: Client with low CBT can't establish any circuits
---------------------------------------------------+------------------------
 Reporter:  arma                                   |          Owner:                    
     Type:  defect                                 |         Status:  needs_review      
 Priority:  major                                  |      Milestone:  Tor: 0.2.4.x-final
Component:  Tor                                    |        Version:                    
 Keywords:  regression tor-client MikePerry201211  |         Parent:                    
   Points:                                         |   Actualpoints:  8                 
---------------------------------------------------+------------------------

Comment(by nickm):

 Replying to [comment:46 mikeperry]:
 > Replying to [comment:45 nickm]:
 > > Dumb question:
 > >
 > > * I can't see what actually relaxes the timeout when relaxed_timeout
 is set.  It appears that the first time through the
 circuit_expire_building loop, we set relaxed_timeout , but the next time
 through the loop, we'll see that relaxed_timeout is already set, and call
 the "No circuits are opened" log message", and go on.  What's supposed to
 be happening here?  I thought the logic was that a relaxed_timeout circuit
 should get a more lax timeout, but it seems like everybody's getting the
 same close_cutoff.
 >
 > The logic is "If there are no opened circuits, allow *every* circuit to
 wait until the close_cutoff, but mark each one that we decide to do this
 for, so we can both avoid using them later unless we have to, and also do
 some CBT bookkeeping. As soon as there are *any* opened circuits, we can
 stop doing this relaxed timeout stuff and even let all the unbuilt relaxed
 circuits we were waiting on expire immediately."

 I'm really confused here; I don't see how the code is doing that.  In
 particular, I'm looking at the part that starts "if
 (!any_opened_circuits)."  I'll read it again until it makes sense once I'm
 back online later.

 > However, I've decided to change the "any_opened_circuits" check to be
 "Are there any opened 3 hop circuits that we're not trying to
 cannibalize?" Otherwise, I think we're going to count open 1-hop and other
 weird circuits to mean we shouldn't relax, which is not quite right.

 seems sensible.


 > > Other than that, if it's testing ok, I say it's mergeable.
 >
 > Should I squash it down? Should this all be just one commit?

 No; I'll do squashing as needed before I merge.

 > As a heads up, I also plan to rebase my other two branches (#7157 and
 #7341) to be on top of this one, to make testing all of them easier (since
 all three can be exercised with the same test).

 Okay, but if this one gets squashed before merge, you'll need to rebase
 them back onto master.

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


More information about the tor-bugs mailing list