[tor-bugs] #23818 [Core Tor/Tor]: Make v3 single onion services retry failed connections with a 3-hop path

Tor Bug Tracker & Wiki blackhole at torproject.org
Fri Aug 24 06:26:38 UTC 2018


#23818: Make v3 single onion services retry failed connections with a 3-hop path
-------------------------------------------------+-------------------------
 Reporter:  teor                                 |          Owner:  neel
     Type:  defect                               |         Status:
                                                 |  assigned
 Priority:  Medium                               |      Milestone:  Tor:
                                                 |  unspecified
Component:  Core Tor/Tor                         |        Version:
 Severity:  Normal                               |     Resolution:
 Keywords:  prop224, tor-hs, single-onion,       |  Actual Points:
  ipv6, 034-triage-20180328,                     |
  034-removed-20180328                           |
Parent ID:  #23493                               |         Points:
 Reviewer:                                       |        Sponsor:
-------------------------------------------------+-------------------------

Comment (by teor):

 Replying to [comment:10 neel]:
 > I am interested in this patch.
 >
 > Right now, I am looking at commit b4aa8fc3d9 (that you referred to in
 Comment 1) and saw that in `pick_intro_point()`, you replaced this line
 >
 > {{{
 > info = extend_info_from_node(node, direct_conn);
 > }}}
 >
 > with this:
 >
 > {{{
 > info = extend_info_from_node(node, 0);
 > }}}
 >
 > Should I revert this to the former line (the one with `direct_conn`)?

 We re-wrote a lot of this code in #23588 and #23576.

 I suggest you:
 1. create a branch from the master branch, and merge the latest branches
 from #23588 and #23576
 2. test that the merged branch passes "make test-network-all", including
 all the IPv6 tests
 3. test that the merged branch fails the single-onion-v23-ipv6-md network
 using "chutney/tools/test-network.sh --flavour single-onion-v23-ipv6-md"

 Please paste the test results into a ticket, to confirm that you're
 running the correct tests.

 Then you can start writing a patch for this ticket based on those
 branches:

 As you are writing the patch, you might find some of this removed code
 useful:
 https://github.com/torproject/tor/commit/b4aa8fc3d918cc3aea375985c44abd086f91ae7a
 #diff-b2d25162bf60cfbeb456effc403d3282L1540
 https://github.com/torproject/tor/commit/b4aa8fc3d918cc3aea375985c44abd086f91ae7a
 #diff-b2d25162bf60cfbeb456effc403d3282L1557

 But remember, that old code is buggy and incomplete!

 4. write code that matches the v2 single onion service behaviour for intro
 point selection:
 https://github.com/torproject/tor/blob/fe9f58514349c9d25b48ae29c87d8aaf065d0931/src/feature/rend/rendservice.c#L4133

 5. and intro point connection:
 https://github.com/torproject/tor/blob/fe9f58514349c9d25b48ae29c87d8aaf065d0931/src/feature/rend/rendservice.c#L3031

 6. write code that matches the v2 single onion service behaviour for rend
 point connection:
 https://github.com/torproject/tor/blob/fe9f58514349c9d25b48ae29c87d8aaf065d0931/src/feature/rend/rendservice.c#L2089

 7. write a comment that explains the single onion service behaviour for
 rend point retries (which just use a standard 3-hop connection):
 https://github.com/torproject/tor/blob/422abd4fa3c2c9c10f4e7f83eced7416785e89c4/src/feature/rend/rendservice.c#L2994

 8. when you have implemented the 3-hop fallback feature, your code will
 pass on the single-onion-v23-ipv6-md network, and we can make that network
 part of the standard test suite (#27251).

 I suggest that you open child tickets for steps 1-3, 4-5, and 6-8.
 Otherwise, this ticket will become very large and hard to read,

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


More information about the tor-bugs mailing list