Add a comment about _LimitedHostnameResolver

This commit is contained in:
Richard van der Hoff 2020-08-29 00:05:25 +01:00
parent d2ac767de2
commit 8027166dd5

View file

@ -334,6 +334,13 @@ def install_dns_limiter(reactor, max_dns_requests_in_flight=100):
This is to workaround https://twistedmatrix.com/trac/ticket/9620, where we This is to workaround https://twistedmatrix.com/trac/ticket/9620, where we
can run out of file descriptors and infinite loop if we attempt to do too can run out of file descriptors and infinite loop if we attempt to do too
many DNS queries at once many DNS queries at once
XXX: I'm confused by this. reactor.nameResolver does not use twisted.names unless
you explicitly install twisted.names as the resolver; rather it uses a GAIResolver
backed by the reactor's default threadpool (which is limited to 10 threads). So
(a) I don't understand why twisted ticket 9620 is relevant, and (b) I don't
understand why we would run out of FDs if we did too many lookups at once.
-- richvdh 2020/08/29
""" """
new_resolver = _LimitedHostnameResolver( new_resolver = _LimitedHostnameResolver(
reactor.nameResolver, max_dns_requests_in_flight reactor.nameResolver, max_dns_requests_in_flight