[tor-bugs] #7870 [Tor]: Retry on a new circuit if reason timeout or reason connectrefused. ALARM! (was: Retry on a new circuit if reason timeout or reason connectrefused)

Tor Bug Tracker & Wiki blackhole at torproject.org
Mon Dec 23 20:58:58 UTC 2013


#7870: Retry on a new circuit if reason timeout or reason connectrefused.  ALARM!
--------------------------+--------------------------------
     Reporter:  arma      |      Owner:
         Type:  defect    |     Status:  new
     Priority:  critical  |  Milestone:  Tor: 0.2.4.x-final
    Component:  Tor       |    Version:
   Resolution:            |   Keywords:  tor-client
Actual Points:            |  Parent ID:
       Points:            |
--------------------------+--------------------------------
Changes (by cypherpunks):

 * priority:  major => critical


Comment:

 connection_ap_process_end_not_open() is totally broken right now.
 {{{
     if (reason == END_STREAM_REASON_TORPROTOCOL ||
         reason == END_STREAM_REASON_INTERNAL ||
         reason == END_STREAM_REASON_DESTROY) {
       /* All three of these reasons could mean a failed tag
        * hit the exit and it complained. Do not probe.
        * Fail the circuit. */
       circ->path_state = PATH_STATE_USE_FAILED;
       return -END_CIRC_REASON_TORPROTOCOL;
 }}}
 Client should to retry for any end reason, internal, external, any! Client
 have no abilities to know what and why exit relay sent that reason and
 distinguish case of valid (for example) refusing tcp connection by target
 host or filter or attack or anything else.
 Keeping of throw away circuits is related but another task, that can't to
 stop fixing of this task. Right now exit relay fully controlling client,
 it can to stuck with it, to drop stream/circuit, and to force move to
 another circuit too anyway.

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


More information about the tor-bugs mailing list