Ticket #4141 defect closed duplicate
Too many open (leaking?) File Descriptors and "cannot import name SHA"
| Reported by: | cb | Owned by: | cb |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | names | Keywords: | |
| Cc: | thijs | Branch: | |
| Author: | Launchpad Bug: |
Description
Hello
my name is Christian Bahls i am an anti-censorship activist from germany
we have this new law on internet-censorhip that would oblige providers to filter dns
so i set out and implement a dns-(json+http)-dns-tunnel
My Resolver looks like this:
resolvers=[] cacheResolver = cache.CacheResolver(verbose=True) resolvers.append(cacheResolver) hostResolver = hosts.Resolver(file='named.root.txt') #clientResolver = client.Resolver(servers=[('139.30.8.7',53)]) rootResolver = root.bootstrap(hostResolver) resolvers.append(rootResolver) #resolvers.append(hostResolver) #resolvers.append(clientResolver) theResolver = resolve.ResolverChain(resolvers)
it gets called like this:
def render_GET(self,request):
DNSLogger.info("REQUEST: %s" % (request)) d=theResolver.typeToMethod[self.typeKey](self.query) d.addCallback(self.returnResults,request) d.addErrback(self.returnError,request) #request.notifyFinish().addErrback(self.cancelRequest, d, request) return NOT_DONE_YET
where typeKey would be '1' for type 'IN'
Under heavy Pressure .. I get:
Unhandled error in Deferred: Traceback (most recent call last):
File "/usr/lib/python2.5/site-packages/Twisted-9.0.0-py2.5-linux-x86_64.egg/twisted/internet/defer.py", line 238, in callback
File "/usr/lib/python2.5/site-packages/Twisted-9.0.0-py2.5-linux-x86_64.egg/twisted/internet/defer.py", line 307, in _startRunCallbacks
File "/usr/lib/python2.5/site-packages/Twisted-9.0.0-py2.5-linux-x86_64.egg/twisted/internet/defer.py", line 323, in _runCallbacks
File "/usr/lib/python2.5/site-packages/Twisted-9.0.0-py2.5-linux-x86_64.egg/twisted/internet/defer.py", line 625, in gotResult
--- <exception caught here> ---
File "/usr/lib/python2.5/site-packages/Twisted-9.0.0-py2.5-linux-x86_64.egg/twisted/internet/defer.py", line 600, in _deferGenerator
File "/usr/lib/python2.5/site-packages/Twisted-9.0.0-py2.5-linux-x86_64.egg/twisted/names/root.py", line 120, in discoverAuthority
File "/usr/lib/python2.5/site-packages/Twisted-9.0.0-py2.5-linux-x86_64.egg/twisted/names/root.py", line 67, in lookupNameservers
File "/usr/lib/python2.5/site-packages/Twisted-9.0.0-py2.5-linux-x86_64.egg/twisted/names/root.py", line 31, in retry
File "/usr/lib/python2.5/site-packages/Twisted-9.0.0-py2.5-linux-x86_64.egg/twisted/names/dns.py", line 1730, in query
File "/usr/lib/python2.5/site-packages/Twisted-9.0.0-py2.5-linux-x86_64.egg/twisted/names/dns.py", line 1577, in pickID
File "/usr/lib/python2.5/site-packages/Twisted-9.0.0-py2.5-linux-x86_64.egg/twisted/names/dns.py", line 44, in randomSource
File "/usr/lib/python2.5/site-packages/Twisted-9.0.0-py2.5-linux-x86_64.egg/twisted/python/randbytes.py", line 113, in secureRandom
File "/usr/lib/python2.5/site-packages/Twisted-9.0.0-py2.5-linux-x86_64.egg/twisted/python/randbytes.py", line 92, in _cryptoRandom
File "/usr/lib/python2.5/site-packages/Crypto/Util/randpool.py", line 57, in init
exceptions.ImportError: cannot import name SHA
####### AND AFTERWARDS ######### Unhandled error in Deferred: Traceback (most recent call last):
File "/usr/lib/python2.5/site-packages/Twisted-9.0.0-py2.5-linux-x86_64.egg/twisted/internet/defer.py", line 600, in _deferGenerator
File "/usr/lib/python2.5/site-packages/Twisted-9.0.0-py2.5-linux-x86_64.egg/twisted/names/root.py", line 120, in discoverAuthority
File "/usr/lib/python2.5/site-packages/Twisted-9.0.0-py2.5-linux-x86_64.egg/twisted/names/root.py", line 67, in lookupNameservers
File "/usr/lib/python2.5/site-packages/Twisted-9.0.0-py2.5-linux-x86_64.egg/twisted/names/root.py", line 31, in retry
--- <exception caught here> ---
File "/usr/lib/python2.5/site-packages/Twisted-9.0.0-py2.5-linux-x86_64.egg/twisted/names/dns.py", line 1725, in query
File "/usr/lib/python2.5/site-packages/Twisted-9.0.0-py2.5-linux-x86_64.egg/twisted/names/dns.py", line 1666, in startListening
File "/usr/lib/python2.5/site-packages/Twisted-9.0.0-py2.5-linux-x86_64.egg/twisted/internet/posixbase.py", line 248, in listenUDP
File "/usr/lib/python2.5/site-packages/Twisted-9.0.0-py2.5-linux-x86_64.egg/twisted/internet/udp.py", line 83, in startListening
File "/usr/lib/python2.5/site-packages/Twisted-9.0.0-py2.5-linux-x86_64.egg/twisted/internet/udp.py", line 91, in _bindSocket
twisted.internet.error.CannotListenError: Couldn't listen on any:0: (24, 'Too many open files').
I saw a similar Bug arround here .. .. but it was supposed to be fixed?
.. as i have only the Deferred to play around with
i am not so sure how to get rid of the open UDP ports
yours Christian Bahls

