saketkc / pysradb

Package for fetching metadata and downloading data from SRA/ENA/GEO
https://saketkc.github.io/pysradb
BSD 3-Clause "New" or "Revised" License
307 stars 50 forks source link

[BUG] requests.exceptions.ConnectionError: #111

Closed Maarten-vd-Sande closed 3 years ago

Maarten-vd-Sande commented 3 years ago

Describe the bug If I run for instance the example on the docs:

pysradb search -v 3 -q coronavirus --publication-date 01-08-2020:07-08-2020

I get:

  0%|                                                                                                                                                                                                   | 0/20 [00:00<?, ?it/s]Traceback (most recent call last):
  File "/home/maarten/anaconda3/envs/scepia/lib/python3.8/site-packages/urllib3/connectionpool.py", line 445, in _make_request
    six.raise_from(e, None)
  File "<string>", line 3, in raise_from
  File "/home/maarten/anaconda3/envs/scepia/lib/python3.8/site-packages/urllib3/connectionpool.py", line 440, in _make_request
    httplib_response = conn.getresponse()
  File "/home/maarten/anaconda3/envs/scepia/lib/python3.8/http/client.py", line 1347, in getresponse
    response.begin()
  File "/home/maarten/anaconda3/envs/scepia/lib/python3.8/http/client.py", line 307, in begin
    version, status, reason = self._read_status()
  File "/home/maarten/anaconda3/envs/scepia/lib/python3.8/http/client.py", line 268, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/home/maarten/anaconda3/envs/scepia/lib/python3.8/socket.py", line 669, in readinto
    return self._sock.recv_into(b)
  File "/home/maarten/anaconda3/envs/scepia/lib/python3.8/ssl.py", line 1241, in recv_into
    return self.read(nbytes, buffer)
  File "/home/maarten/anaconda3/envs/scepia/lib/python3.8/ssl.py", line 1099, in read
    return self._sslobj.read(len, buffer)
socket.timeout: The read operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/maarten/anaconda3/envs/scepia/lib/python3.8/site-packages/urllib3/connectionpool.py", line 699, in urlopen
    httplib_response = self._make_request(
  File "/home/maarten/anaconda3/envs/scepia/lib/python3.8/site-packages/urllib3/connectionpool.py", line 447, in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
  File "/home/maarten/anaconda3/envs/scepia/lib/python3.8/site-packages/urllib3/connectionpool.py", line 336, in _raise_timeout
    raise ReadTimeoutError(
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='eutils.ncbi.nlm.nih.gov', port=443): Read timed out. (read timeout=20)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/maarten/anaconda3/envs/scepia/lib/python3.8/site-packages/requests/adapters.py", line 439, in send
    resp = conn.urlopen(
  File "/home/maarten/anaconda3/envs/scepia/lib/python3.8/site-packages/urllib3/connectionpool.py", line 783, in urlopen
    return self.urlopen(
  File "/home/maarten/anaconda3/envs/scepia/lib/python3.8/site-packages/urllib3/connectionpool.py", line 846, in urlopen
    return self.urlopen(
  File "/home/maarten/anaconda3/envs/scepia/lib/python3.8/site-packages/urllib3/connectionpool.py", line 783, in urlopen
    return self.urlopen(
  File "/home/maarten/anaconda3/envs/scepia/lib/python3.8/site-packages/urllib3/connectionpool.py", line 755, in urlopen
    retries = retries.increment(
  File "/home/maarten/anaconda3/envs/scepia/lib/python3.8/site-packages/urllib3/util/retry.py", line 573, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='eutils.ncbi.nlm.nih.gov', port=443): Max retries exceeded with url: /entrez/eutils/efetch.fcgi?db=sra&retmode=xml&id=10990637%2C10990636%2C10990635%2C10990634%2C10990633%2C10990632%2C10990631%2C10990630%2C10990629%2C10990628%2C10990627%2C10990626%2C10990625%2C10990624%2C10990623%2C10990622%2C10990621%2C10990620%2C10990619%2C10990618 (Caused by ReadTimeoutError("HTTPSConnectionPool(host='eutils.ncbi.nlm.nih.gov', port=443): Read timed out. (read timeout=20)"))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/maarten/anaconda3/envs/scepia/bin/pysradb", line 10, in <module>
    sys.exit(parse_args())
  File "/home/maarten/anaconda3/envs/scepia/lib/python3.8/site-packages/pysradb/cli.py", line 1211, in parse_args
    search(
  File "/home/maarten/anaconda3/envs/scepia/lib/python3.8/site-packages/pysradb/cli.py", line 193, in search
    instance.search()
  File "/home/maarten/anaconda3/envs/scepia/lib/python3.8/site-packages/pysradb/search.py", line 785, in search
    r = requests_3_retries().get(
  File "/home/maarten/anaconda3/envs/scepia/lib/python3.8/site-packages/requests/sessions.py", line 555, in get
    return self.request('GET', url, **kwargs)
  File "/home/maarten/anaconda3/envs/scepia/lib/python3.8/site-packages/requests/sessions.py", line 542, in request
    resp = self.send(prep, **send_kwargs)
  File "/home/maarten/anaconda3/envs/scepia/lib/python3.8/site-packages/requests/sessions.py", line 655, in send
    r = adapter.send(request, **kwargs)
  File "/home/maarten/anaconda3/envs/scepia/lib/python3.8/site-packages/requests/adapters.py", line 516, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='eutils.ncbi.nlm.nih.gov', port=443): Max retries exceeded with url: /entrez/eutils/efetch.fcgi?db=sra&retmode=xml&id=10990637%2C10990636%2C10990635%2C10990634%2C10990633%2C10990632%2C10990631%2C10990630%2C10990629%2C10990628%2C10990627%2C10990626%2C10990625%2C10990624%2C10990623%2C10990622%2C10990621%2C10990620%2C10990619%2C10990618 (Caused by ReadTimeoutError("HTTPSConnectionPool(host='eutils.ncbi.nlm.nih.gov', port=443): Read timed out. (read timeout=20)"))

Desktop:

Maarten-vd-Sande commented 3 years ago

Now I can't reproduce anymore. Perhaps a problem on the site of ncbi?

saketkc commented 3 years ago

Looks like it was transient and originated at NCBI end. Probably need to handle such errors more gracefully in the future. Closing this for now, but feel free to reopen if you face any issues!