Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does this Python requests error mean?

What does this Python requests error mean? Does this mean it tries to connect to the server and couldn't? What does [Errno 8] nodename nor servname provided, or not known mean?

File "python2.7/site-packages/requests/api.py", line 55, in get

File "python2.7/site-packages/requests/api.py", line 44, in request

File "python2.7/site-packages/requests/sessions.py", line 279, in request

File "python2.7/site-packages/requests/sessions.py", line 374, in send

File "python2.7/site-packages/requests/adapters.py", line 209, in send

ConnectionError: HTTPConnectionPool(host='localhost', port=8091): Max retries exceeded with url: /pools/default (Caused by : [Errno 8] nodename nor servname provided, or not known

The code generated this: http://github.com...

class RestConnection(object):
    def __init__(self, serverInfo):
        #serverInfo can be a json object
        if isinstance(serverInfo, dict):
            self.ip = serverInfo["ip"]
            self.username = serverInfo["username"]
            self.password = serverInfo["password"]
            self.port = serverInfo["port"]
            self.couch_api_base = serverInfo.get("couchApiBase")
        else:
            self.ip = serverInfo.ip
            self.username = serverInfo.rest_username
            self.password = serverInfo.rest_password
            self.port = serverInfo.port
            self.couch_api_base = None

        self.base_url = "http://{0}:{1}".format(self.ip, self.port)
        server_config_uri = ''.join([self.base_url, '/pools/default'])
        self.config = requests.get(server_config_uri).json()
        # if couchApiBase is not set earlier, let's look it up
        if self.couch_api_base is None:
            #couchApiBase is not in node config before Couchbase Server 2.0
            self.couch_api_base = self.config["nodes"][0].get("couchApiBase")

FYI, This error is generated from the Couchbase Python client.

like image 971
Cory Avatar asked Mar 08 '13 03:03

Cory


People also ask

What does requests mean in Python?

Definition and Usage The requests module allows you to send HTTP requests using Python. The HTTP request returns a Response Object with all the response data (content, encoding, status, etc).

What does Response 403 mean in Python?

403 – 'Forbidden' means that the server understood the request but will not fulfill it. In cases where credentials were provided, 403 would mean that the account in question does not have sufficient permissions to view the content. 404 – 'Not found' means that the server found no content matching the Request-URI.

How do I fix error 429 in Python?

Wait to send another request. The simplest way to fix an HTTP 429 error is to wait to send another request. Often, this status code is sent with a “Retry-after” header that specifies a period of time to wait before sending another request.


2 Answers

It means the DNS lookup of the host name you're trying to access failed. For example, I get the same error if I try to look up an invalid host name:

>>> import requests
>>> requests.get('http://apsoapsodjaopisjdaoij.com')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/api.py", line 65, in get
    return request('get', url, **kwargs)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/safe_mode.py", line 39, in wrapped
    return function(method, url, **kwargs)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/api.py", line 51, in request
    return session.request(method=method, url=url, **kwargs)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/sessions.py", line 241, in request
    r.send(prefetch=prefetch)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/models.py", line 631, in send
    raise ConnectionError(sockerr)
requests.exceptions.ConnectionError: [Errno 8] nodename nor servname provided, or not known

Check the value of serverInfo["ip"] and make sure it's set correctly.

like image 100
Adam Rosenfield Avatar answered Sep 19 '22 04:09

Adam Rosenfield


Adding my own experience for those who are experiencing this in the future.

It turns out that this was actually because I had reach the maximum number of open files on my system. It had nothing to do with failed connections, or even a DNS error as indicated.

like image 21
Oded Avatar answered Sep 22 '22 04:09

Oded