lyft / lyft/python-blessclient

Cannot refresh public IP randomly

未关闭
#30 0 条评论 1 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

主要语言
Python
星标
117
派生
31
PR 合并指标
30 天内没有已合并 PR

描述

On occasion, on the first cold run:

DEBUG:root:Cache get disabled                                                                                       
DEBUG:root:Cache get disabled                                                                                                    
DEBUG:root:Getting current public IP                                                                                                                                                                                                          DEBUG:root:Could not refresh public IP from http://api.ipify.org                                                                                                                                                                              Traceback (most recent call last):                                                                                                                                                                                                              File "/home/marc/.blessclient/blessclient/user_ip.py", line 53, in _fetchIP                                                                                                                                                    
    with contextlib.closing(urlopen(url, timeout=2)) as f:                                                                                                                                                                                      File "/home/marc/.pyenv/versions/2.7.12/lib/python2.7/urllib2.py", line 154, in urlopen                                                                                                                                                         return opener.open(url, data, timeout)                                                                                                                                                                                                      File "/home/marc/.pyenv/versions/2.7.12/lib/python2.7/urllib2.py", line 429, in open                                                                                                                                                            response = self._open(req, data)                                                                                                                                                                                                            File "/home/marc/.pyenv/versions/2.7.12/lib/python2.7/urllib2.py", line 447, in _open                                                                                                                                        
    '_open', req)                                                                                                                                                                                                                               File "/home/marc/.pyenv/versions/2.7.12/lib/python2.7/urllib2.py", line 407, in _call_chain                                                                                                                                                     result = func(*args)                                                                                                                                                     
  File "/home/marc/.pyenv/versions/2.7.12/lib/python2.7/urllib2.py", line 1228, in http_open                                                                                                                                                      return self.do_open(httplib.HTTPConnection, req)                                                                                                                                                                                            File "/home/marc/.pyenv/versions/2.7.12/lib/python2.7/urllib2.py", line 1201, in do_open                                                                                                                                                        r = h.getresponse(buffering=True)                                                                                                                                                                                                           File "/home/marc/.pyenv/versions/2.7.12/lib/python2.7/httplib.py", line 1136, in getresponse                                                                                                                                                    response.begin()                                                                                                                                                                                                                            File "/home/marc/.pyenv/versions/2.7.12/lib/python2.7/httplib.py", line 453, in begin                                                                                                                                                           version, status, reason = self._read_status()                                                                                                                                                                                               File "/home/marc/.pyenv/versions/2.7.12/lib/python2.7/httplib.py", line 409, in _read_status                                           
    line = self.fp.readline(_MAXLINE + 1)                                                                                                                                  
  File "/home/marc/.pyenv/versions/2.7.12/lib/python2.7/socket.py", line 480, in readline                                                                                                                                                         data = self._sock.recv(self._rbufsize)                                                                                                                                                                                                    timeout: timed out                                                                                                               
DEBUG:root:Could not refresh public IP from http://canihazip.com
Traceback (most recent call last):                                                                                  
  File "/home/marc/.blessclient/blessclient/user_ip.py", line 53, in _fetchIP                                                    
    with contextlib.closing(urlopen(url, timeout=2)) as f:                                                                                                                                                                                      File "/home/marc/.pyenv/versions/2.7.12/lib/python2.7/urllib2.py", line 154, in urlopen                                                                                                                                                         return opener.open(url, data, timeout)                                                                                                                                                                                                      File "/home/marc/.pyenv/versions/2.7.12/lib/python2.7/urllib2.py", line 429, in open                                                                                                                                           
    response = self._open(req, data)                                                                                                                                                                                                            File "/home/marc/.pyenv/versions/2.7.12/lib/python2.7/urllib2.py", line 447, in _open                                                                                                                                                           '_open', req)                                                                                                                                                                                                                               File "/home/marc/.pyenv/versions/2.7.12/lib/python2.7/urllib2.py", line 407, in _call_chain                                                                                                                                                     result = func(*args)                                                                                                                                                                                                                        File "/home/marc/.pyenv/versions/2.7.12/lib/python2.7/urllib2.py", line 1228, in http_open                                                                                                                                   
    return self.do_open(httplib.HTTPConnection, req)                                                                                                                                                                                            File "/home/marc/.pyenv/versions/2.7.12/lib/python2.7/urllib2.py", line 1201, in do_open                                                                                                                                                        r = h.getresponse(buffering=True)                                                                                                                                        
  File "/home/marc/.pyenv/versions/2.7.12/lib/python2.7/httplib.py", line 1136, in getresponse                                                                                                                                                    response.begin()                                                                                                                                                                                                                            File "/home/marc/.pyenv/versions/2.7.12/lib/python2.7/httplib.py", line 453, in begin                                                                                                                                                           version, status, reason = self._read_status()                                                                                                                                                                                               File "/home/marc/.pyenv/versions/2.7.12/lib/python2.7/httplib.py", line 409, in _read_status                                                                                                                                                    line = self.fp.readline(_MAXLINE + 1)                                                                                                                                                                                                     
  File "/home/marc/.pyenv/versions/2.7.12/lib/python2.7/socket.py", line 480, in readline
    data = self._sock.recv(self._rbufsize)
timeout: timed out
Traceback (most recent call last):
  File "/home/marc/.blessclient/blessclient.run", line 11, in <module>
    load_entry_point('blessclient', 'console_scripts', 'blessclient')()
  File "/home/marc/.blessclient/blessclient/client.py", line 643, in main
    bless(region, args.nocache, args.gui, args.host, bless_config)
  File "/home/marc/.blessclient/blessclient/client.py", line 547, in bless
    my_ip = userIP.getIP()
  File "/home/marc/.blessclient/blessclient/user_ip.py", line 29, in getIP
    self._refreshIP()
  File "/home/marc/.blessclient/blessclient/user_ip.py", line 43, in _refreshIP
    raise Exception('Could not refresh public IP')
Exception: Could not refresh public IP

Immediately re-running this works.

贡献指南

这个仓库没有索引到贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

调研方向

从 blessclient/user_ip.py 开始,重点查看 getIP、_refreshIP 和 _fetchIP,然后跟踪来自 blessclient/client.py 的调用。使用列出的两个 public-IP 端点复现 cold-run 超时,并验证首次运行完成时不会引发 "Could not refresh public IP"。

由索引模型根据 Issue 内容生成。

评估

技术栈
python
领域
networking
Issue 类型
缺陷
难度
3/5
预计耗时
1-2 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
45/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。