メッセージを送信し、クライアントからの確認を待つ try/except ブロックがあります。クライアントが終了すると、pickle は EOFError を発生させますが、以下のコードはエラーをキャッチせず、正常なシャットダウンを実行しません。代わりにスタック トレースを出力します。「except socket.error、EOFError:」という行に関係していると思います-socket.errorとEOFErrorの両方を処理するために間違った構文を使用していますか?
try:
msgs = [1]
self.sock.send(pickle.dumps(msgs))
rdy = pickle.loads(self.sock.recv(2097152))
except socket.error, EOFError:
print 'log socketmanager closing'
self.terminate()
break