FX31337 / FX-BT-Scripts

:page_facing_up: Useful scripts for backtesting.
MIT License
34 stars 39 forks source link

socket.error: [Errno 104] Connection reset by peer [$15 awarded] #26

Closed kenorb closed 8 years ago

kenorb commented 8 years ago

The following exception happened while downloading:

Traceback (most recent call last):
  File "/usr/lib/python3.2/urllib/request.py", line 1542, in open
    return getattr(self, name)(url)
  File "/usr/lib/python3.2/urllib/request.py", line 1720, in open_http
    return self._open_generic_http(http.client.HTTPConnection, url, data)
  File "/usr/lib/python3.2/urllib/request.py", line 1703, in _open_generic_http
    response = http_conn.getresponse()
  File "/usr/lib/python3.2/http/client.py", line 1052, in getresponse
    response.begin()
  File "/usr/lib/python3.2/http/client.py", line 346, in begin
    version, status, reason = self._read_status()
  File "/usr/lib/python3.2/http/client.py", line 308, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/usr/lib/python3.2/socket.py", line 287, in readinto
    return self._sock.recv_into(b)
socket.error: [Errno 104] Connection reset by peer

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "./dl_bt_dukascopy.py", line 170, in <module>
    ds.download()
  File "./dl_bt_dukascopy.py", line 82, in download
    urllib.request.urlretrieve(self.url, filename=self.path)
  File "/usr/lib/python3.2/urllib/request.py", line 151, in urlretrieve
    return _urlopener.retrieve(url, filename, reporthook, data)
  File "/usr/lib/python3.2/urllib/request.py", line 1574, in retrieve
    fp = self.open(url, data)
  File "/usr/lib/python3.2/urllib/request.py", line 1546, in open
    raise IOError('socket error', msg).with_traceback(sys.exc_info()[2])
  File "/usr/lib/python3.2/urllib/request.py", line 1542, in open
    return getattr(self, name)(url)
  File "/usr/lib/python3.2/urllib/request.py", line 1720, in open_http
    return self._open_generic_http(http.client.HTTPConnection, url, data)
  File "/usr/lib/python3.2/urllib/request.py", line 1703, in _open_generic_http
    response = http_conn.getresponse()
  File "/usr/lib/python3.2/http/client.py", line 1052, in getresponse
    response.begin()
  File "/usr/lib/python3.2/http/client.py", line 346, in begin
    version, status, reason = self._read_status()
  File "/usr/lib/python3.2/http/client.py", line 308, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/usr/lib/python3.2/socket.py", line 287, in readinto
    return self._sock.recv_into(b)

It needs to be handled, so the script can retry the retrieval.

--- The **[$15 bounty](https://www.bountysource.com/issues/30005790-socket-error-errno-104-connection-reset-by-peer?utm_campaign=plugin&utm_content=tracker%2F20487492&utm_medium=issues&utm_source=github)** on this issue has been claimed at [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F20487492&utm_medium=issues&utm_source=github).
kenorb commented 8 years ago

Fixed in #39