From d8310a3a69671d7aeb6ea351a1f931f24a559a42 Mon Sep 17 00:00:00 2001 Message-Id: From: Mark Wooding Date: Sat, 19 Jul 2014 17:22:37 +0100 Subject: [PATCH 1/1] peerdb/tripe-newpeers.in: Don't start duplicate resolver queries. Organization: Straylight/Edgeware From: Mark Wooding Resolver queries are indexed by query domain name. Previously, if we find another place which wants the same name resolved, we'd overwrite the existing query with the new one, which causes the old one to be cancelled (despite it possibly having made progress). (This also avoids tickling a bug in mLib's handling of aborted queries, fixed separately.) --- peerdb/tripe-newpeers.in | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/peerdb/tripe-newpeers.in b/peerdb/tripe-newpeers.in index d7205845..aa9ccfcb 100644 --- a/peerdb/tripe-newpeers.in +++ b/peerdb/tripe-newpeers.in @@ -75,11 +75,12 @@ class BulkResolver (object): def prepare(me, host): """Prime the resolver to resolve the name HOST.""" - me._resolvers[host] = M.SelResolveByName \ - (host, - lambda name, alias, addr: - me._resolved(host, addr[0]), - lambda: me._resolved(host, None)) + if host not in me._resolvers: + me._resolvers[host] = M.SelResolveByName \ + (host, + lambda name, alias, addr: + me._resolved(host, addr[0]), + lambda: me._resolved(host, None)) def run(me): """Run the background DNS resolver until it's finished.""" -- [mdw]