THRIFT-2466: Improper error handling for SSL/TLS connections that don't complete...
authorRoger Meier <roger@apache.org>
Mon, 21 Apr 2014 19:20:00 +0000 (21:20 +0200)
committerRoger Meier <roger@apache.org>
Mon, 21 Apr 2014 19:20:00 +0000 (21:20 +0200)
Client: Python
Patch: Benoit Sigoure

lib/py/src/server/TProcessPoolServer.py
lib/py/src/server/TServer.py

index 7a695a8..7369466 100644 (file)
@@ -56,6 +56,8 @@ class TProcessPoolServer(TServer):
         while self.isRunning.value:
             try:
                 client = self.serverTransport.accept()
+                if not client:
+                  continue
                 self.serveClient(client)
             except (KeyboardInterrupt, SystemExit):
                 return 0
index 2f24842..976a8f3 100644 (file)
@@ -75,6 +75,8 @@ class TSimpleServer(TServer):
     self.serverTransport.listen()
     while True:
       client = self.serverTransport.accept()
+      if not client:
+        continue
       itrans = self.inputTransportFactory.getTransport(client)
       otrans = self.outputTransportFactory.getTransport(client)
       iprot = self.inputProtocolFactory.getProtocol(itrans)
@@ -103,6 +105,8 @@ class TThreadedServer(TServer):
     while True:
       try:
         client = self.serverTransport.accept()
+        if not client:
+          continue
         t = threading.Thread(target=self.handle, args=(client,))
         t.setDaemon(self.daemon)
         t.start()
@@ -182,6 +186,8 @@ class TThreadPoolServer(TServer):
     while True:
       try:
         client = self.serverTransport.accept()
+        if not client:
+          continue
         self.clients.put(client)
       except Exception, x:
         logging.exception(x)
@@ -214,6 +220,8 @@ class TForkingServer(TServer):
     self.serverTransport.listen()
     while True:
       client = self.serverTransport.accept()
+      if not client:
+        continue
       try:
         pid = os.fork()