[ 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)