Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
即使设置了超时,python.socket的哪一部分可以永久冻结我的脚本?_Python_Python Sockets - Fatal编程技术网

即使设置了超时,python.socket的哪一部分可以永久冻结我的脚本?

即使设置了超时,python.socket的哪一部分可以永久冻结我的脚本?,python,python-sockets,Python,Python Sockets,(链接自)在随机时间无限期地锁定我的Python进程。这是随机发生的,但在我的一台服务器上经常发生。我肯定这不是因为我的代码中有任何东西,所以我粘贴了与Justin.tv python库和oauth相关的堆栈转储部分: File "/home/honstreams/honstreams/website/JtvClient.py", line 51, in get return self._send_request(request, token) File "/home/honstre

(链接自)在随机时间无限期地锁定我的Python进程。这是随机发生的,但在我的一台服务器上经常发生。我肯定这不是因为我的代码中有任何东西,所以我粘贴了与Justin.tv python库和oauth相关的堆栈转储部分:

File "/home/honstreams/honstreams/website/JtvClient.py", line 51, in get return self._send_request(request, token) File "/home/honstreams/honstreams/website/JtvClient.py", line 90, in _send_request return conn.getresponse() File "/usr/lib/python2.6/httplib.py", line 986, in getresponse response.begin() File "/usr/lib/python2.6/httplib.py", line 391, in begin version, status, reason = self._read_status() File "/usr/lib/python2.6/httplib.py", line 349, in _read_status line = self.fp.readline() File "/usr/lib/python2.6/socket.py", line 397, in readline data = recv(1) KeyboardInterrupt 来自的这些行是相关的:

def _send_request(self, request, token=None):
    request.sign_request(OAuthSignatureMethod_HMAC_SHA1(), self.consumer, token)
    conn = self._get_conn() # connection was requested here
    if request.http_method == 'POST':
        conn.request('POST', request.http_url, body=request.to_postdata())
    else:
        conn.request('GET', request.http_url, headers=request.to_header())
    return conn.getresponse()  # Error occurs here

def _get_conn(self):
    return httplib.HTTPConnection("%s:%d" % (self.host, self.port)) # no timeout!
请注意,未通过任何超时。将该代码更改为超时,并确保定义发生超时时发生的情况

def _send_request(self, request, token=None):
    request.sign_request(OAuthSignatureMethod_HMAC_SHA1(), self.consumer, token)
    conn = self._get_conn() # connection was requested here
    if request.http_method == 'POST':
        conn.request('POST', request.http_url, body=request.to_postdata())
    else:
        conn.request('GET', request.http_url, headers=request.to_header())
    return conn.getresponse()  # Error occurs here

def _get_conn(self):
    return httplib.HTTPConnection("%s:%d" % (self.host, self.port)) # no timeout!