SlideRuleEarth / sliderule-python

SlideRule Earth Example Notebooks: On-demand, cloud-based processing of satellite mission data (NASA ICESat-2, GEDI, ArcticDEM/REMA, HLS)
https://slideruleearth.io/rtd/
BSD 3-Clause "New" or "Revised" License
41 stars 21 forks source link

Max retries exceeded with url: Caused by ConnectTimeoutError #102

Closed bradlipovsky closed 2 years ago

bradlipovsky commented 2 years ago

The code, from sliderule import icesat2 icesat2.init("icesat2sliderule.org")

is returning an error (it worked in the past),

timeout Traceback (most recent call last) /home/bradlipovsky/anaconda3/lib/python3.8/site-packages/urllib3/connection.py in _new_conn(self) 168 try: --> 169 conn = connection.create_connection( 170 (self._dns_host, self.port), self.timeout, **extra_kw

/home/bradlipovsky/anaconda3/lib/python3.8/site-packages/urllib3/util/connection.py in create_connection(address, timeout, source_address, socket_options) 95 if err is not None: ---> 96 raise err 97

/home/bradlipovsky/anaconda3/lib/python3.8/site-packages/urllib3/util/connection.py in create_connection(address, timeout, source_address, socket_options) 85 sock.bind(source_address) ---> 86 sock.connect(sa) 87 return sock

timeout: timed out

During handling of the above exception, another exception occurred:

ConnectTimeoutError Traceback (most recent call last) /home/bradlipovsky/anaconda3/lib/python3.8/site-packages/urllib3/connectionpool.py in urlopen(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, **response_kw) 698 # Make the request on the httplib connection object. --> 699 httplib_response = self._make_request( 700 conn,

/home/bradlipovsky/anaconda3/lib/python3.8/site-packages/urllib3/connectionpool.py in _make_request(self, conn, method, url, timeout, chunked, httplib_request_kw) 393 else: --> 394 conn.request(method, url, httplib_request_kw) 395

/home/bradlipovsky/anaconda3/lib/python3.8/site-packages/urllib3/connection.py in request(self, method, url, body, headers) 233 headers["User-Agent"] = _get_default_user_agent() --> 234 super(HTTPConnection, self).request(method, url, body=body, headers=headers) 235

/home/bradlipovsky/anaconda3/lib/python3.8/http/client.py in request(self, method, url, body, headers, encode_chunked) 1229 """Send a complete request to the server.""" -> 1230 self._send_request(method, url, body, headers, encode_chunked) 1231

/home/bradlipovsky/anaconda3/lib/python3.8/http/client.py in _send_request(self, method, url, body, headers, encode_chunked) 1275 body = _encode(body, 'body') -> 1276 self.endheaders(body, encode_chunked=encode_chunked) 1277

/home/bradlipovsky/anaconda3/lib/python3.8/http/client.py in endheaders(self, message_body, encode_chunked) 1224 raise CannotSendHeader() -> 1225 self._send_output(message_body, encode_chunked=encode_chunked) 1226

/home/bradlipovsky/anaconda3/lib/python3.8/http/client.py in _send_output(self, message_body, encode_chunked) 1003 del self._buffer[:] -> 1004 self.send(msg) 1005

/home/bradlipovsky/anaconda3/lib/python3.8/http/client.py in send(self, data) 943 if self.auto_open: --> 944 self.connect() 945 else:

/home/bradlipovsky/anaconda3/lib/python3.8/site-packages/urllib3/connection.py in connect(self) 199 def connect(self): --> 200 conn = self._new_conn() 201 self._prepare_conn(conn)

/home/bradlipovsky/anaconda3/lib/python3.8/site-packages/urllib3/connection.py in _new_conn(self) 173 except SocketTimeout: --> 174 raise ConnectTimeoutError( 175 self,

ConnectTimeoutError: (<urllib3.connection.HTTPConnection object at 0x7fcf34614400>, 'Connection to icesat2sliderule.org timed out. (connect timeout=10)')

During handling of the above exception, another exception occurred:

MaxRetryError Traceback (most recent call last) /home/bradlipovsky/anaconda3/lib/python3.8/site-packages/requests/adapters.py in send(self, request, stream, timeout, verify, cert, proxies) 438 if not chunked: --> 439 resp = conn.urlopen( 440 method=request.method,

/home/bradlipovsky/anaconda3/lib/python3.8/site-packages/urllib3/connectionpool.py in urlopen(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, **response_kw) 754 --> 755 retries = retries.increment( 756 method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]

/home/bradlipovsky/anaconda3/lib/python3.8/site-packages/urllib3/util/retry.py in increment(self, method, url, response, error, _pool, _stacktrace) 573 if new_retry.is_exhausted(): --> 574 raise MaxRetryError(_pool, url, error or ResponseError(cause)) 575

MaxRetryError: HTTPConnectionPool(host='icesat2sliderule.org', port=8050): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x7fcf34614400>, 'Connection to icesat2sliderule.org timed out. (connect timeout=10)'))

During handling of the above exception, another exception occurred:

ConnectTimeout Traceback (most recent call last)

in ----> 1 icesat2.init("icesat2sliderule.org") 2 # (61.2987006, -45.7926625) /home/bradlipovsky/anaconda3/lib/python3.8/site-packages/sliderule/icesat2.py in init(url, verbose, max_resources, max_errors, loglevel) 532 loglevel = logging.INFO 533 logging.basicConfig(level=loglevel) --> 534 sliderule.set_url(url) 535 sliderule.set_verbose(verbose) 536 sliderule.set_max_errors(max_errors) /home/bradlipovsky/anaconda3/lib/python3.8/site-packages/sliderule/sliderule.py in set_url(urls) 384 raise TypeError('expected ip address or hostname as a string or list of strings') 385 # then update server table --> 386 update_available_servers() 387 388 # /home/bradlipovsky/anaconda3/lib/python3.8/site-packages/sliderule/sliderule.py in update_available_servers() 395 server_index = 0 396 server_table = {} --> 397 response = requests.get(service_url, data='{"service":"sliderule"}', timeout=request_timeout).json() 398 for entry in response['members']: 399 server_url = "http://" + entry + ":9081" /home/bradlipovsky/anaconda3/lib/python3.8/site-packages/requests/api.py in get(url, params, **kwargs) 74 75 kwargs.setdefault('allow_redirects', True) ---> 76 return request('get', url, params=params, **kwargs) 77 78 /home/bradlipovsky/anaconda3/lib/python3.8/site-packages/requests/api.py in request(method, url, **kwargs) 59 # cases, and look like a memory leak in others. 60 with sessions.Session() as session: ---> 61 return session.request(method=method, url=url, **kwargs) 62 63 /home/bradlipovsky/anaconda3/lib/python3.8/site-packages/requests/sessions.py in request(self, method, url, params, data, headers, cookies, files, auth, timeout, allow_redirects, proxies, hooks, stream, verify, cert, json) 540 } 541 send_kwargs.update(settings) --> 542 resp = self.send(prep, **send_kwargs) 543 544 return resp /home/bradlipovsky/anaconda3/lib/python3.8/site-packages/requests/sessions.py in send(self, request, **kwargs) 653 654 # Send the request --> 655 r = adapter.send(request, **kwargs) 656 657 # Total elapsed time of the request (approximately) /home/bradlipovsky/anaconda3/lib/python3.8/site-packages/requests/adapters.py in send(self, request, stream, timeout, verify, cert, proxies) 502 # TODO: Remove this in 3.0.0: see #2811 503 if not isinstance(e.reason, NewConnectionError): --> 504 raise ConnectTimeout(e, request=request) 505 506 if isinstance(e.reason, ResponseError): ConnectTimeout: HTTPConnectionPool(host='icesat2sliderule.org', port=8050): Max retries exceeded with url: / (Caused by ConnectTimeoutError(, 'Connection to icesat2sliderule.org timed out. (connect timeout=10)'))`
jpswinski commented 2 years ago

@bradlipovsky a few months ago we updated the client and broke backward compatibility. I am so sorry for this - it was a necessary evil as we were connecting to sliderule over non-standard ports and some firewalls were having issues with it. It looks like you are using one of the older clients. Can you update to the latest Python client and give it another try?

Here is a link to some instructions on updating the client: http://icesat2sliderule.org/rtd/getting_started/Install.html

jpswinski commented 2 years ago

Pending closure due to inactivity.