#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
_______________________________________________ tor-bugs mailing list tor-bugs@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs