[tor-bugs] #28190 [Core Tor/Tor]: Hidden service v2 exceeded launch limit with 11 intro points in the last 37 seconds

Tor Bug Tracker & Wiki blackhole at torproject.org
Thu Oct 25 12:19:24 UTC 2018


#28190: Hidden service v2 exceeded launch limit with 11 intro points in the last 37
seconds
--------------------------------+------------------------------------
 Reporter:  teor                |          Owner:  (none)
     Type:  defect              |         Status:  new
 Priority:  Medium              |      Milestone:  Tor: 0.3.6.x-final
Component:  Core Tor/Tor        |        Version:  Tor: unspecified
 Severity:  Normal              |     Resolution:
 Keywords:  regression, tor-hs  |  Actual Points:
Parent ID:                      |         Points:
 Reviewer:                      |        Sponsor:
--------------------------------+------------------------------------
Changes (by dgoulet):

 * cc: dgoulet (removed)
 * keywords:  regression => regression, tor-hs


Comment:

 This is actually possible. I've seen that with 4 or 5 intro where 1 or 2
 circuits aren't opened and because we launch 3 + 2 intro points and take
 the first 3 that finishes, you can hit that log warning while having extra
 intro points inflight for which tor hasn't closed them yet.

 In this case, the 4th one still wasn't closed just yet.

 It is still unclear why the service would do so many attempts in such a
 small period of time but in this case it seems the service does has 3
 working intro points so the warning comes from this:

 {{{
     } else if (service->n_intro_circuits_launched >=
                rend_max_intro_circs_per_period(
                                       service->n_intro_points_wanted)) {
       /* We have failed too many times in this period; wait for the next
        * one before we try to initiate any more connections. */
       rend_log_intro_limit(service, LOG_WARN);
       continue;
     }
 }}}

 ... where in this case `n_intro_circuits_launched = 11` and if
 `n_intro_points_wanted` was 0, then we would hit that condition everytime
 that `rend_consider_services_intro_points()` is called, which is every
 second...

 It appears to me that we shouldn't even continue in the loop of that
 function if the service wants *NO* intro point. Just below that warning,
 there is this snippet of code that should be before I feel like...

 {{{
     /* Quiescent state, we have more or the equal amount of wanted node
 for
      * this service. Proceed to the next service. We can have more nodes
      * because we launch extra preemptive circuits if our intro nodes list
 was
      * originally empty for performance reasons. */
     if (intro_nodes_len >= service->n_intro_points_wanted) {
       continue;
     }
 }}}

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


More information about the tor-bugs mailing list