[tor-bugs] #9776 [Tor]: Long-running tor client doesn't build new circuits anymore

Tor Bug Tracker & Wiki blackhole at torproject.org
Tue Sep 24 21:03:49 UTC 2013


#9776: Long-running tor client doesn't build new circuits anymore
-------------------------+--------------------------------
     Reporter:  karsten  |      Owner:
         Type:  defect   |     Status:  reopened
     Priority:  normal   |  Milestone:  Tor: 0.2.4.x-final
    Component:  Tor      |    Version:  Tor: 0.2.4.17-rc
   Resolution:           |   Keywords:  tor-client
Actual Points:           |  Parent ID:
       Points:           |
-------------------------+--------------------------------
Changes (by arma):

 * status:  closed => reopened
 * resolution:  fixed =>


Comment:

 {{{
 <skruffy> fix for #9776 is wrong. you can't just drop circuits if chan was
 already opened. if circuit will chose new chan while old still open then
 if
 all closed before new esteblished then all circuits will be destroyed.
 such
 case can happens for relay that process extend reqs.

 <skruffy> it's racy condition for circ that didn't attached to already
 open
 conn for some reason.
 <skruffy> it's easy to destroy circuit just after extend req if no good
 chan.
 <skruffy> so no races and less code.
 <skruffy> client can ask again if need.
 > you have pseudocode or something to make the suggestion clearer?
 <skruffy> no, it's bad move too.

 > what is special about a channel that makes us unable to do what we used
 to
 do, back when we called them connections? or were we broken then too?
 <skruffy> if channel was open no need to destroy every circ that waits for
 the same fpr.

 <skruffy> channel_closed() need some checks before
 circuit_n_chan_done(chan, 0) calling.
 <skruffy> check of state.

 > so, that's the right fix? :)
 <skruffy> like, if (chan->state =! CHANNEL_STATE_OPEN)
 circuit_n_chan_done(chan, 0);
 <skruffy> but I'm not sure
 <skruffy> with zillion new states
 }}}

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


More information about the tor-bugs mailing list