[tor-bugs] #13506 [Tor]: Explain/document what various hidden service close reasons mean

Tor Bug Tracker & Wiki blackhole at torproject.org
Tue Feb 3 19:24:42 UTC 2015


#13506: Explain/document what various hidden service close reasons mean
------------------------+---------------------------------
     Reporter:  arma    |      Owner:
         Type:  task    |     Status:  new
     Priority:  normal  |  Milestone:  Tor: 0.2.6.x-final
    Component:  Tor     |    Version:
   Resolution:          |   Keywords:  SponsorR tor-hs doc
Actual Points:          |  Parent ID:
       Points:          |
------------------------+---------------------------------

Comment (by arma):

 Here are the notes I wrote up during the January hack week:
 {{{
 RESOLVEFAILED - Tor tried to fetch the hidden service descriptor from
 the hsdirs but none of them had it. This implies that the hidden service
 has not been running in the past 72 hours.
 [This last sentence is actually wrong -- we also give out resolvefailed
 when we fetched the descriptor, tried the intro points, fetched a new
 one to see if it had changed, and gave up because it hadn't changed.]

 EXITPOLICY    - The destination port that you tried is not configured
 on the hidden service side. That is, the hidden service was up and
 reachable, but it isn't listening on this port. (Hidden services running
 Tor 0.2.6.2-alpha and later don't send this error code; instead they send
 back an END cell with reason DONE reason then close the circuit on you.)

 DONE          - If you get an END cell with reason DONE, *before*
 you've gotten your CONNECTED cell, that indicates a similar situation
 to EXITPOLICY, but the hidden service is running 0.2.6.2-alpha or later,
 and it has now closed the circuit on you.

 INTERNAL      - Internal error inside the Tor client -- hopefully you
 will not see this much; let us know if you do.

 DESTROY       - The circuit closed before you could get a response back
 -- transient failure, e.g. a relay went down unexpectedly. Trying again
 might work.

 MISC          - "Catch-all for unlisted reasons" -- shouldn't happen
 much in practice.

 CONNECTREFUSED - every step of the rendezvous worked great, and that the
 hidden service is indeed up and running and configured to use the virtual
 port you asked for, but there was nothing listening on the other end of
 that virtual port. For example, the HS's Tor client is running fine but
 its apache service is down.

 CONNRESET     - Like CONNECTREFUSED except the errno at the hidden
 service when trying to connect() to the service was ECONNRESET.

 NOROUTE       - Like CONNECTREFUSED except the errno at the hidden service
 when trying to connect() to the service was ENETUNREACH, EHOSTUNREACH,
 EACCES, or EPERM.

 TIMEOUT       - Two cases unfortunately blurred together -- either
 like CONNECTREFUSED above but connect() got the ETIMEDOUT errno, or the
 client-side timeout of 120 seconds kicked in and we gave up.

 CANT_ATTACH   - Tor failed to find an appropriate circuit to attach this
 stream to.
 [I think this case happens in many different situations, and we likely
 want
 to invent some new stream end reasons and break out the cases.]
 }}}

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


More information about the tor-bugs mailing list