[ 
https://issues.apache.org/jira/browse/LIBCLOUD-791?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15097112#comment-15097112
 ] 

Jacob Riley commented on LIBCLOUD-791:
--------------------------------------

It would make sense.

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'

This curl request works as long as I can force the TLS version to be 1.2 when 
connecting.

Is it possible that the curl request internal to libcloud is not the same as 
the one shown in the DEBUG output?

I'll do some more searching and it turns out the ticket I had with Linode going 
for the last week was closed.

> Connection to the Linode API drops
> ----------------------------------
>
>                 Key: LIBCLOUD-791
>                 URL: https://issues.apache.org/jira/browse/LIBCLOUD-791
>             Project: Libcloud
>          Issue Type: Bug
>          Components: Compute
>         Environment: apache-libcloud==0.18.0
> Ubuntu 14.04
> Python2.7
>            Reporter: Jacob Riley
>
> 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.
> # -------- 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.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to