Commit 1ee793fa authored by ibuler's avatar ibuler

[Debug] GC debug

parent 127fa8b1
...@@ -313,6 +313,7 @@ class InteractiveServer: ...@@ -313,6 +313,7 @@ class InteractiveServer:
break break
except socket.error: except socket.error:
break break
print("Interact function end")
self.close() self.close()
def interact_async(self): def interact_async(self):
...@@ -323,3 +324,6 @@ class InteractiveServer: ...@@ -323,3 +324,6 @@ class InteractiveServer:
def close(self): def close(self):
self.app.remove_client(self.client) self.app.remove_client(self.client)
logger.info("Exit interactive server") logger.info("Exit interactive server")
def __del__(self):
print("Interactive class been gc")
...@@ -75,7 +75,7 @@ class Client: ...@@ -75,7 +75,7 @@ class Client:
return "<%s from %s:%s>" % (self.user, self.addr[0], self.addr[1]) return "<%s from %s:%s>" % (self.user, self.addr[0], self.addr[1])
def __del__(self): def __del__(self):
logger.info("GC client object: {}".format(self)) print("GC client object: {}".format(self))
class Server: class Server:
...@@ -187,7 +187,7 @@ class Server: ...@@ -187,7 +187,7 @@ class Server:
return "<To: {}>".format(str(self.asset)) return "<To: {}>".format(str(self.asset))
def __del__(self): def __del__(self):
logger.info("GC server object: {}".format(self)) print("Server object has been gc".format(self))
class WSProxy: class WSProxy:
......
...@@ -179,7 +179,7 @@ class ServerReplayRecorder(ReplayRecorder): ...@@ -179,7 +179,7 @@ class ServerReplayRecorder(ReplayRecorder):
return False return False
def __del__(self): def __del__(self):
print("{} has been gc".format(self)) print("Server recorder has been gc")
del self.file del self.file
......
...@@ -107,7 +107,10 @@ class Session: ...@@ -107,7 +107,10 @@ class Session:
def terminate(self): def terminate(self):
msg = b"Terminate by administrator\r\n" msg = b"Terminate by administrator\r\n"
try:
self.client.send(msg) self.client.send(msg)
except OSError:
pass
self.close() self.close()
def bridge(self): def bridge(self):
...@@ -186,4 +189,4 @@ class Session: ...@@ -186,4 +189,4 @@ class Session:
return self.id return self.id
def __del__(self): def __del__(self):
logger.info("Session {} object has been GC".format(self.id)) print("Session object been gc")
...@@ -51,6 +51,7 @@ class SSHServer: ...@@ -51,6 +51,7 @@ class SSHServer:
thread.start() thread.start()
except Exception as e: except Exception as e:
logger.error("Start SSH server error: {}".format(e)) logger.error("Start SSH server error: {}".format(e))
print("SSH Server stop")
def handle_connection(self, sock, addr): def handle_connection(self, sock, addr):
transport = paramiko.Transport(sock, gss_kex=False) transport = paramiko.Transport(sock, gss_kex=False)
...@@ -72,10 +73,15 @@ class SSHServer: ...@@ -72,10 +73,15 @@ class SSHServer:
return return
while True: while True:
if not transport.is_active():
logger.debug("Transport closed")
break
chan = transport.accept() chan = transport.accept()
server.event.wait(5)
if chan is None: if chan is None:
continue continue
server.event.wait(5)
if not server.event.is_set(): if not server.event.is_set():
logger.warning("Client not request a valid request, exiting") logger.warning("Client not request a valid request, exiting")
return return
...@@ -94,6 +100,7 @@ class SSHServer: ...@@ -94,6 +100,7 @@ class SSHServer:
if request_type == 'pty' or request_type == 'x11': if request_type == 'pty' or request_type == 'x11':
logger.info("Request type `pty`, dispatch to interactive mode") logger.info("Request type `pty`, dispatch to interactive mode")
InteractiveServer(self.app, client).interact() InteractiveServer(self.app, client).interact()
print("Dispatch function end")
elif request_type == 'exec': elif request_type == 'exec':
pass pass
elif request_type == 'subsystem': elif request_type == 'subsystem':
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment