lyft / lyft/python-blessclient

Cannot refresh public IP randomly

オープン
#30 コメント 0 件 リアクション 1 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

主要言語
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. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

blessclient/user_ip.py、特に getIP、_refreshIP、_fetchIP から始め、次に blessclient/client.py からの呼び出しを追跡します。記載されている 2 つの public-IP エンドポイントを使って cold-run のタイムアウトを再現し、初回実行が "Could not refresh public IP" を発生させずに完了することを確認します。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
python
領域
networking
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
45/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。