def testLeaks5(): from mixminion.test import _getMMTPServer server, listener, messagesIn, keyid = _getMMTPServer(1) #t = threading.Thread(None, testLeaks5_send, # args=(keyid,)) #t.start() while 1: server.process(0.5) #if messagesIn: # print "Connections" del messagesIn[:]
def testLeaks5_send2(): from mixminion.test import _getMMTPServer from mixminion.test import TEST_PORT, _getTLSContext import mixminion.MMTPClient #msg = "X" * 32 * 1024 server, listener, messagesIn, keyid = _getMMTPServer(1,port=(TEST_PORT+1)) #t = threading.Thread(None, testLeaks5_send, # args=(keyid,)) #t.start() sending = [0] def sentHook(sending=sending): sending[0]=0 certcache = mixminion.MMTPClient.PeerCertificateCache() print len(gc.get_objects()) import socket #context = _getTLSContext(0) i = 0 while 0: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.setblocking(1) sock.connect(("127.0.0.1", TEST_PORT)) tls = _getTLSContext(0).sock(sock) tls.connect() #tls.check_cert_alive() #tls.verify_cert_and_get_identity_pk() #tls.get_peer_cert_pk() certcache.check(tls, keyid, ("127.0.0.1", TEST_PORT)) #print certcache.cache tls.shutdown() sock.close() while 1: clientcon = mixminion.server.MMTPServer.MMTPClientConnection( _getTLSContext(0), "127.0.0.1", TEST_PORT, keyid, ["X"*(32*1024), "JUNK"], ["z", None], finishedCallback=sentHook, certCache=certcache) clientcon.register(server) i += 1 sending[0] = 1 print "Sending",i while sending[0]: server.process(0.5) #pprint.pprint( clientcon.__dict__ ) old = clientcon clientcon = None gc.collect() #print len(certcache.cache) print len(gc.get_objects()) print len(server.readers), len(server.writers) print gc.get_referrers(old)