[ 
https://issues.apache.org/jira/browse/LIBCLOUD-791?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jacob Riley updated LIBCLOUD-791:
---------------------------------
    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.

# -------- 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.

  was:
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.

DEBUG:pika.adapters.select_connection:Using EPollPoller
DEBUG:pika.callback:Added: {'callback': <bound method 
_CallbackResult.set_value_once of 
<pika.adapters.blocking_connection._CallbackResult object at 0x7fc09494dea8>>, 
'only': None, 'one_shot': False, 'arguments': None}
DEBUG:pika.callback:Added: {'callback': <bound method 
_CallbackResult.set_value_once of 
<pika.adapters.blocking_connection._CallbackResult object at 0x7fc0949bd128>>, 
'only': None, 'one_shot': False, 'arguments': None}
DEBUG:pika.callback:Added: {'callback': <bound method 
_CallbackResult.set_value_once of 
<pika.adapters.blocking_connection._CallbackResult object at 0x7fc0949bf5a8>>, 
'only': None, 'one_shot': False, 'arguments': None}
DEBUG:pika.callback:Added: {'callback': <bound method 
SelectConnection._on_connection_start of 
<pika.adapters.select_connection.SelectConnection object at 0x7fc0988fc910>>, 
'only': None, 'one_shot': True, 'arguments': None, 'calls': 1}
INFO:pika.adapters.base_connection:Connecting to ::1:5672
DEBUG:pika.callback:Processing 0:Connection.Start
DEBUG:pika.callback:Processing use of oneshot callback
DEBUG:pika.callback:0 registered uses left
DEBUG:pika.callback:Removing callback #0: {'callback': <bound method 
SelectConnection._on_connection_start of 
<pika.adapters.select_connection.SelectConnection object at 0x7fc0988fc910>>, 
'only': None, 'one_shot': True, 'arguments': None, 'calls': 0}
DEBUG:pika.callback:Calling <bound method SelectConnection._on_connection_start 
of <pika.adapters.select_connection.SelectConnection object at 0x7fc0988fc910>> 
for "0:Connection.Start"
DEBUG:pika.callback:Added: {'callback': <bound method 
SelectConnection._on_connection_tune of 
<pika.adapters.select_connection.SelectConnection object at 0x7fc0988fc910>>, 
'only': None, 'one_shot': True, 'arguments': None, 'calls': 1}
DEBUG:pika.callback:Processing 0:Connection.Tune
DEBUG:pika.callback:Processing use of oneshot callback
DEBUG:pika.callback:0 registered uses left
DEBUG:pika.callback:Removing callback #0: {'callback': <bound method 
SelectConnection._on_connection_tune of 
<pika.adapters.select_connection.SelectConnection object at 0x7fc0988fc910>>, 
'only': None, 'one_shot': True, 'arguments': None, 'calls': 0}
DEBUG:pika.callback:Calling <bound method SelectConnection._on_connection_tune 
of <pika.adapters.select_connection.SelectConnection object at 0x7fc0988fc910>> 
for "0:Connection.Tune"
DEBUG:pika.connection:Creating a HeartbeatChecker: 580
DEBUG:pika.callback:Added: {'callback': <bound method 
SelectConnection._on_connection_open of 
<pika.adapters.select_connection.SelectConnection object at 0x7fc0988fc910>>, 
'only': None, 'one_shot': True, 'arguments': None, 'calls': 1}
DEBUG:pika.callback:Processing 0:Connection.OpenOk
DEBUG:pika.callback:Processing use of oneshot callback
DEBUG:pika.callback:0 registered uses left
DEBUG:pika.callback:Removing callback #0: {'callback': <bound method 
SelectConnection._on_connection_open of 
<pika.adapters.select_connection.SelectConnection object at 0x7fc0988fc910>>, 
'only': None, 'one_shot': True, 'arguments': None, 'calls': 0}
DEBUG:pika.callback:Calling <bound method SelectConnection._on_connection_open 
of <pika.adapters.select_connection.SelectConnection object at 0x7fc0988fc910>> 
for "0:Connection.OpenOk"
DEBUG:pika.callback:Added: {'callback': <bound method 
SelectConnection._on_connection_closed of 
<pika.adapters.select_connection.SelectConnection object at 0x7fc0988fc910>>, 
'only': None, 'one_shot': True, 'arguments': None, 'calls': 1}
DEBUG:pika.callback:Processing 0:_on_connection_open
DEBUG:pika.callback:Calling <bound method _CallbackResult.set_value_once of 
<pika.adapters.blocking_connection._CallbackResult object at 0x7fc0949bd128>> 
for "0:_on_connection_open"
DEBUG:pika.connection:Creating channel 1
DEBUG:pika.callback:Added: {'callback': <bound method 
SelectConnection._on_channel_cleanup of 
<pika.adapters.select_connection.SelectConnection object at 0x7fc0988fc910>>, 
'only': <pika.channel.Channel object at 0x7fc0988fc3d0>, 'one_shot': True, 
'arguments': None, 'calls': 1}
DEBUG:pika.callback:Added: {'callback': <bound method Channel._on_getempty of 
<pika.channel.Channel object at 0x7fc0988fc3d0>>, 'only': None, 'one_shot': 
False, 'arguments': None}
DEBUG:pika.callback:Added: {'callback': <bound method Channel._on_cancel of 
<pika.channel.Channel object at 0x7fc0988fc3d0>>, 'only': None, 'one_shot': 
False, 'arguments': None}
DEBUG:pika.callback:Added: {'callback': <bound method Channel._on_flow of 
<pika.channel.Channel object at 0x7fc0988fc3d0>>, 'only': None, 'one_shot': 
False, 'arguments': None}
DEBUG:pika.callback:Added: {'callback': <bound method Channel._on_close of 
<pika.channel.Channel object at 0x7fc0988fc3d0>>, 'only': None, 'one_shot': 
True, 'arguments': None, 'calls': 1}
DEBUG:pika.channel:Adding in on_synchronous_complete callback
DEBUG:pika.callback:Added: {'callback': <bound method 
Channel._on_synchronous_complete of <pika.channel.Channel object at 
0x7fc0988fc3d0>>, 'only': None, 'one_shot': True, 'arguments': None, 'calls': 1}
DEBUG:pika.channel:Adding passed in callback
DEBUG:pika.callback:Added: {'callback': <bound method Channel._on_openok of 
<pika.channel.Channel object at 0x7fc0988fc3d0>>, 'only': None, 'one_shot': 
True, 'arguments': None, 'calls': 1}
DEBUG:pika.callback:Added: {'callback': <bound method 
BlockingChannel._on_consumer_cancelled_by_broker of 
<pika.adapters.blocking_connection.BlockingChannel object at 0x7fc0988fc410>>, 
'only': None, 'one_shot': False, 'arguments': None}
DEBUG:pika.callback:Added: {'callback': <bound method 
_CallbackResult.signal_once of 
<pika.adapters.blocking_connection._CallbackResult object at 0x7fc094603050>>, 
'only': None, 'one_shot': False, 'arguments': None}
DEBUG:pika.callback:Added: {'callback': <bound method 
_CallbackResult.set_value_once of 
<pika.adapters.blocking_connection._CallbackResult object at 0x7fc0946032d8>>, 
'only': None, 'one_shot': True, 'arguments': None, 'calls': 1}
DEBUG:pika.callback:Added: {'callback': <bound method 
_CallbackResult.set_value_once of 
<pika.adapters.blocking_connection._CallbackResult object at 0x7fc094603320>>, 
'only': None, 'one_shot': False, 'arguments': None}
INFO:pika.adapters.blocking_connection:Created channel=1
DEBUG:pika.callback:Processing 1:Channel.OpenOk
DEBUG:pika.callback:Processing use of oneshot callback
DEBUG:pika.callback:0 registered uses left
DEBUG:pika.callback:Removing callback #0: {'callback': <bound method 
Channel._on_synchronous_complete of <pika.channel.Channel object at 
0x7fc0988fc3d0>>, 'only': None, 'one_shot': True, 'arguments': None, 'calls': 0}
DEBUG:pika.callback:Processing use of oneshot callback
DEBUG:pika.callback:0 registered uses left
DEBUG:pika.callback:Removing callback #0: {'callback': <bound method 
Channel._on_openok of <pika.channel.Channel object at 0x7fc0988fc3d0>>, 'only': 
None, 'one_shot': True, 'arguments': None, 'calls': 0}
DEBUG:pika.callback:Calling <bound method Channel._on_synchronous_complete of 
<pika.channel.Channel object at 0x7fc0988fc3d0>> for "1:Channel.OpenOk"
DEBUG:pika.channel:0 blocked frames
DEBUG:pika.callback:Calling <bound method Channel._on_openok of 
<pika.channel.Channel object at 0x7fc0988fc3d0>> for "1:Channel.OpenOk"
DEBUG:pika.channel:Adding in on_synchronous_complete callback
DEBUG:pika.callback:Added: {'callback': <bound method 
Channel._on_synchronous_complete of <pika.channel.Channel object at 
0x7fc0988fc3d0>>, 'only': None, 'one_shot': True, 'arguments': {'queue': 
'task_queue'}, 'calls': 1}
DEBUG:pika.channel:Adding passed in callback
DEBUG:pika.callback:Added: {'callback': <bound method 
_CallbackResult.set_value_once of 
<pika.adapters.blocking_connection._CallbackResult object at 0x7fc0946037e8>>, 
'only': None, 'one_shot': True, 'arguments': {'queue': 'task_queue'}, 'calls': 
1}
DEBUG:pika.callback:Processing 1:Queue.DeclareOk
DEBUG:pika.callback:Processing use of oneshot callback
DEBUG:pika.callback:0 registered uses left
DEBUG:pika.callback:Comparing {'queue': 'task_queue'} to {'queue': 'task_queue'}
DEBUG:pika.callback:Removing callback #0: {'callback': <bound method 
Channel._on_synchronous_complete of <pika.channel.Channel object at 
0x7fc0988fc3d0>>, 'only': None, 'one_shot': True, 'arguments': {'queue': 
'task_queue'}, 'calls': 0}
DEBUG:pika.callback:Processing use of oneshot callback
DEBUG:pika.callback:0 registered uses left
DEBUG:pika.callback:Comparing {'queue': 'task_queue'} to {'queue': 'task_queue'}
DEBUG:pika.callback:Removing callback #0: {'callback': <bound method 
_CallbackResult.set_value_once of 
<pika.adapters.blocking_connection._CallbackResult object at 0x7fc0946037e8>>, 
'only': None, 'one_shot': True, 'arguments': {'queue': 'task_queue'}, 'calls': 
0}
DEBUG:pika.callback:Calling <bound method Channel._on_synchronous_complete of 
<pika.channel.Channel object at 0x7fc0988fc3d0>> for "1:Queue.DeclareOk"
DEBUG:pika.channel:0 blocked frames
DEBUG:pika.callback:Calling <bound method _CallbackResult.set_value_once of 
<pika.adapters.blocking_connection._CallbackResult object at 0x7fc0946037e8>> 
for "1:Queue.DeclareOk"
DEBUG:pika.channel:Adding in on_synchronous_complete callback
DEBUG:pika.callback:Added: {'callback': <bound method 
Channel._on_synchronous_complete of <pika.channel.Channel object at 
0x7fc0988fc3d0>>, 'only': None, 'one_shot': True, 'arguments': None, 'calls': 1}
DEBUG:pika.channel:Adding passed in callback
DEBUG:pika.callback:Added: {'callback': <bound method 
_CallbackResult.signal_once of 
<pika.adapters.blocking_connection._CallbackResult object at 0x7fc0946037e8>>, 
'only': None, 'one_shot': True, 'arguments': None, 'calls': 1}
DEBUG:pika.callback:Processing 1:Basic.QosOk
DEBUG:pika.callback:Processing use of oneshot callback
DEBUG:pika.callback:0 registered uses left
DEBUG:pika.callback:Removing callback #0: {'callback': <bound method 
Channel._on_synchronous_complete of <pika.channel.Channel object at 
0x7fc0988fc3d0>>, 'only': None, 'one_shot': True, 'arguments': None, 'calls': 0}
DEBUG:pika.callback:Processing use of oneshot callback
DEBUG:pika.callback:0 registered uses left
DEBUG:pika.callback:Removing callback #0: {'callback': <bound method 
_CallbackResult.signal_once of 
<pika.adapters.blocking_connection._CallbackResult object at 0x7fc0946037e8>>, 
'only': None, 'one_shot': True, 'arguments': None, 'calls': 0}
DEBUG:pika.callback:Calling <bound method Channel._on_synchronous_complete of 
<pika.channel.Channel object at 0x7fc0988fc3d0>> for "1:Basic.QosOk"
DEBUG:pika.channel:0 blocked frames
DEBUG:pika.callback:Calling <bound method _CallbackResult.signal_once of 
<pika.adapters.blocking_connection._CallbackResult object at 0x7fc0946037e8>> 
for "1:Basic.QosOk"
DEBUG:pika.channel:Adding in on_synchronous_complete callback
DEBUG:pika.callback:Added: {'callback': <bound method 
Channel._on_synchronous_complete of <pika.channel.Channel object at 
0x7fc0988fc3d0>>, 'only': None, 'one_shot': True, 'arguments': {'consumer_tag': 
'ctag1.ce87f93bd4a74780b923984bb2a62c57'}, 'calls': 1}
DEBUG:pika.channel:Adding passed in callback
DEBUG:pika.callback:Added: {'callback': <bound method Channel._on_eventok of 
<pika.channel.Channel object at 0x7fc0988fc3d0>>, 'only': None, 'one_shot': 
True, 'arguments': {'consumer_tag': 'ctag1.ce87f93bd4a74780b923984bb2a62c57'}, 
'calls': 1}
DEBUG:pika.callback:Processing 1:Basic.ConsumeOk
DEBUG:pika.callback:Processing use of oneshot callback
DEBUG:pika.callback:0 registered uses left
DEBUG:pika.callback:Comparing {'consumer_tag': 
'ctag1.ce87f93bd4a74780b923984bb2a62c57'} to {'consumer_tag': 
'ctag1.ce87f93bd4a74780b923984bb2a62c57'}
DEBUG:pika.callback:Removing callback #1: {'callback': <bound method 
Channel._on_synchronous_complete of <pika.channel.Channel object at 
0x7fc0988fc3d0>>, 'only': None, 'one_shot': True, 'arguments': {'consumer_tag': 
'ctag1.ce87f93bd4a74780b923984bb2a62c57'}, 'calls': 0}
DEBUG:pika.callback:Processing use of oneshot callback
DEBUG:pika.callback:0 registered uses left
DEBUG:pika.callback:Comparing {'consumer_tag': 
'ctag1.ce87f93bd4a74780b923984bb2a62c57'} to {'consumer_tag': 
'ctag1.ce87f93bd4a74780b923984bb2a62c57'}
DEBUG:pika.callback:Removing callback #1: {'callback': <bound method 
Channel._on_eventok of <pika.channel.Channel object at 0x7fc0988fc3d0>>, 
'only': None, 'one_shot': True, 'arguments': {'consumer_tag': 
'ctag1.ce87f93bd4a74780b923984bb2a62c57'}, 'calls': 0}
DEBUG:pika.callback:Calling <bound method _CallbackResult.signal_once of 
<pika.adapters.blocking_connection._CallbackResult object at 0x7fc094603050>> 
for "1:Basic.ConsumeOk"
DEBUG:pika.callback:Calling <bound method Channel._on_synchronous_complete of 
<pika.channel.Channel object at 0x7fc0988fc3d0>> for "1:Basic.ConsumeOk"
DEBUG:pika.channel:0 blocked frames
DEBUG:pika.callback:Calling <bound method Channel._on_eventok of 
<pika.channel.Channel object at 0x7fc0988fc3d0>> for "1:Basic.ConsumeOk"
DEBUG:pika.channel:Discarding frame <METHOD(['channel_number=1', 
'frame_type=1', 
"method=<Basic.ConsumeOk(['consumer_tag=ctag1.ce87f93bd4a74780b923984bb2a62c57'])>"])>
{u'env': {u'var1': 1, u'var3': 3, u'var2': 2}, u'action': u'deploy', u'types': 
{u'nginx': 1, u'php': 1, u'mysql': 1}, u'name': u'bit test test1'}

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


> 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