[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