Uploaded image for project: 'Libcloud'
  1. Libcloud
  2. LIBCLOUD-791

Connection to the Linode API drops

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • Compute
    • None
    • apache-libcloud==0.18.0
      Ubuntu 14.04
      Python2.7

    Description

      When attempting to connect to Linode through the Linode provider, I am receiving a dropped connection. The following DEBUG information is attached.

      I have also found that when taking the below curl request and sending it normally, I do not have any errors on getting a response.

      1. -------- begin 140040111659984 request ----------
        curl -i -X GET -H 'Host: api.linode.com' -H 'X-LC-Request-ID: 140040111659984' -H 'Accept-Encoding: gzip,deflate' -H 'User-Agent: libcloud/0.18.0 (Linode) ' --compress 'https://api.linode.com:443/?api_key=sekrit&api_responseFormat=json&api_action=avail.linodeplans'
        Traceback (most recent call last):
        File "test.py", line 6, in <module>
        p.worker.consume_queue()
        File "/srv/auction-balancer/Auction-Balancer/sae/prov/util/worker.py", line 53, in wrapped_func
        channel.start_consuming()
        File "/srv/auction-balancer/Auction-Balancer/provenv/local/lib/python2.7/site-packages/pika/adapters/blocking_connection.py", line 1681, in start_consuming
        self.connection.process_data_events(time_limit=None)
        File "/srv/auction-balancer/Auction-Balancer/provenv/local/lib/python2.7/site-packages/pika/adapters/blocking_connection.py", line 656, in process_data_events
        self._dispatch_channel_events()
        File "/srv/auction-balancer/Auction-Balancer/provenv/local/lib/python2.7/site-packages/pika/adapters/blocking_connection.py", line 469, in _dispatch_channel_events
        impl_channel._get_cookie()._dispatch_events()
        File "/srv/auction-balancer/Auction-Balancer/provenv/local/lib/python2.7/site-packages/pika/adapters/blocking_connection.py", line 1310, in _dispatch_events
        evt.body)
        File "/srv/auction-balancer/Auction-Balancer/sae/prov/util/worker.py", line 45, in callback
        success = func(message)
        File "/srv/auction-balancer/Auction-Balancer/sae/prov/util/worker.py", line 102, in consume_queue
        node = server.create_node('linode', name=machine_name, size_id='Linode 1024', image_id='Ubuntu 14.04 LTS')
        File "/srv/auction-balancer/Auction-Balancer/sae/prov/util/provider.py", line 78, in create_node
        size = [s for s in driver.list_sizes() if s.name == size_id][0]
        File "/srv/auction-balancer/Auction-Balancer/provenv/local/lib/python2.7/site-packages/libcloud/compute/drivers/linode.py", line 405, in list_sizes
        data = self.connection.request(API_ROOT, params=params).objects[0]
        File "/srv/auction-balancer/Auction-Balancer/provenv/local/lib/python2.7/site-packages/libcloud/common/base.py", line 784, in request
        headers=headers)
        File "/srv/auction-balancer/Auction-Balancer/provenv/local/lib/python2.7/site-packages/libcloud/common/base.py", line 443, in request
        headers)
        File "/usr/lib/python2.7/httplib.py", line 979, in request
        self._send_request(method, url, body, headers)
        File "/usr/lib/python2.7/httplib.py", line 1013, in _send_request
        self.endheaders(body)
        File "/usr/lib/python2.7/httplib.py", line 975, in endheaders
        self._send_output(message_body)
        File "/usr/lib/python2.7/httplib.py", line 835, in _send_output
        self.send(msg)
        File "/usr/lib/python2.7/httplib.py", line 797, in send
        self.connect()
        File "/srv/auction-balancer/Auction-Balancer/provenv/local/lib/python2.7/site-packages/libcloud/httplib_ssl.py", line 280, in connect
        ssl_version=libcloud.security.SSL_VERSION)
        File "/usr/lib/python2.7/ssl.py", line 487, in wrap_socket
        ciphers=ciphers)
        File "/usr/lib/python2.7/ssl.py", line 243, in _init_
        self.do_handshake()
        File "/usr/lib/python2.7/ssl.py", line 405, in do_handshake
        self._sslobj.do_handshake()
        socket.error: [Errno 104] Connection reset by peer

      Testing with a separate library also based on httplib , I found that it is not failing when connecting to the Linode API however.

      Attachments

        Activity

          People

            Unassigned Unassigned
            jacob-sae Jacob Riley
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated: