Opened 9 months ago

Closed 4 months ago

#32542 closed defect (fixed)

hs-v3: Add the 2 missing SOCKS extended errors from prop304

Reported by: dgoulet Owned by: dgoulet
Priority: Medium Milestone: Tor: 0.4.4.x-final
Component: Core Tor/Tor Version:
Severity: Normal Keywords: tor-hs, 043-can, network-team-roadmap-2020Q1
Cc: brade, mcs Actual Points: 0.4
Parent ID: #30025 Points: 1
Reviewer: asn Sponsor: Sponsor27-must

Description

The two missing codes are the intro failure and RP failure.

    * X'F2' Onion Service Introduction Failed

      Client failed to introduce to the service meaning the descriptor was
      found but the service is not anymore at the introduction points. The
      service has likely changed its descriptor or is not running.

    * X'F3' Onion Service Rendezvous Failed

      Client failed to rendezvous with the service which means that the client
      is unable to finalize the connection.

Child Tickets

Change History (10)

comment:1 Changed 9 months ago by mcs

Cc: brade mcs added

comment:2 Changed 9 months ago by dgoulet

Discussion with asn on this:

  • We'll send back the X'F2' code if we get a NACK from every IP in the descriptor (meaning that the service is actually offline and no service-side intro circuits could be found by the IP)
  • We'll send back the X'F3' code when the RP circuit _times out_. We'll need a spec clarification.
  • We'll send a *new* error code when all IP circuit timed out. Basically, if we try all IPs in the descriptor and they all gave us a circuit time out, we'll send back that code. (meaining that something is wrong with the client's network)
Last edited 4 months ago by asn (previous) (diff)

comment:3 Changed 8 months ago by dgoulet

Actual Points: 0.4
Status: assignedneeds_review

Branch: ticket32542_043_01
PR: https://github.com/torproject/tor/pull/1597

(No tor-spec patch since socks-extension.txt points to the man page for the error codes.)

This is a bit tricky as in the "from where we report the codes" so word of advise for the reviewer.

The introduction failure codes are reported back if the descriptor we just fetched has no usable introduction points. This is a bit counter intuitive but the reason is because tor will refetch a descriptor if all intro points fail and then notice they are the same again and stop. That very moment is where the failure is reported.

comment:4 Changed 7 months ago by nickm

Keywords: 043-can added

tag all currently needs_review tickets with 043-can. (Since there's code before the feature freeze, maybe we can take it.)

comment:5 Changed 7 months ago by gaba

Keywords: network-team-roadmap-2020Q1 added

comment:6 Changed 6 months ago by asn

Status: needs_reviewneeds_revision

Looking good but I pointed out a few stuff on the PR.

Also the fact that this hasn't been tested in real life makes me a bit anxious that things might crash or not work as intended. We could at least test the introduction F2 by shutting down the service in a chutney network, and having the client download the descriptor and trying to connect to it (all intros would send NACKs).

comment:7 Changed 6 months ago by asn

Milestone: Tor: 0.4.3.x-finalTor: 0.4.4.x-final

I guess this is 044 material now.

comment:8 Changed 6 months ago by pili

Parent ID: #14389#30025

comment:9 Changed 4 months ago by dgoulet

Status: needs_revisionneeds_review

I was able to test the F2 code and confirm we get it if all IPs NACK us. The F3 and F7 are timeout and apart from unit testing, I'm unable to test with chutney without some heavy tor modification.

At least that code base is unit tested so I'm confident for no crash. We'll have to see with 044 stabilization any bugs for those code.

Branch: ticket32542_044_01
PR: https://github.com/torproject/tor/pull/1857

comment:10 Changed 4 months ago by asn

Resolution: fixed
Status: needs_reviewclosed

Merged!!! Fixed a syntax error in the man page before merging (Similar has X'F2' code... -> Similar to X'F2' code...) as well.

Thanks! :)

Note: See TracTickets for help on using tickets.