Skip to content

Occasionally hangs in ssl do_handshake() #13

@ojensen5115

Description

@ojensen5115

I've been experiencing a lot of "hangs" recently, where the server simply stops responding to anything. I set my code to dump the stack on SIGINT I get the following:

File: "chat.py", line 856, in <module>
  server.serveforever()
File: "SimpleWebSocketServer/SimpleWebSocketServer.py", line 609, in serveforever
  super(SimpleSSLWebSocketServer, self).serveforever()
File: "SimpleWebSocketServer/SimpleWebSocketServer.py", line 530, in serveforever
  newsock = self.decorateSocket(sock)
File: "SimpleWebSocketServer/SimpleWebSocketServer.py", line 600, in decorateSocket
  ssl_version=self.version)
File: "/usr/lib/python2.7/ssl.py", line 381, in wrap_socket
  ciphers=ciphers)
File: "/usr/lib/python2.7/ssl.py", line 143, in __init__
  self.do_handshake()
File: "/usr/lib/python2.7/ssl.py", line 305, in do_handshake
  self._sslobj.do_handshake()
File: "chat.py", line 845, in close_sig_handler
  for filename, lineno, name, line in traceback.extract_stack(stack):

Looking around Google, it seems that a number of people (particularly on Debian and using OpenSSL, which is my setup) are experiencing occasional hangs in ssl.py's do_handshake() so this isn't really a SimpleWebSocketServer issue. However, the only solution I've found so far is to modify SimpleWebSocketServer.py to set a timeout on the decorateSocket() call, using something akin to what is suggested here: http://stackoverflow.com/a/2282656/146587

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions