From 8027166dd546811316e7c8395deaf929110c2f3a Mon Sep 17 00:00:00 2001 From: Richard van der Hoff Date: Sat, 29 Aug 2020 00:05:25 +0100 Subject: [PATCH] Add a comment about _LimitedHostnameResolver --- synapse/app/_base.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/synapse/app/_base.py b/synapse/app/_base.py index 2b2cd795e..a43dc5b2c 100644 --- a/synapse/app/_base.py +++ b/synapse/app/_base.py @@ -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 can run out of file descriptors and infinite loop if we attempt to do too 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( reactor.nameResolver, max_dns_requests_in_flight