wiota / lime

Lime binds your work together.
lime.wiota.co
2 stars 0 forks source link

Catch exceptions when trying to connect to S3 #115

Open ryanhinkel opened 9 years ago

ryanhinkel commented 9 years ago

While zipping, I had this error pop up. It is most likely because I'm running the lime backend locally connected through a firewall that blocks S3.

This may not be a real issue at all, however I wanted to log it.

Traceback (most recent call last):
  File "/Users/ryanhinkel/web/lime/venv/lib/python2.7/site-packages/flask/app.py", line 1701, in __call__
    return self.wsgi_app(environ, start_response)
  File "/Users/ryanhinkel/web/lime/venv/lib/python2.7/site-packages/newrelic-2.18.1.15/newrelic/api/web_transaction.py", line 853, in __call__
    result = application(environ, _start_response)
  File "/Users/ryanhinkel/web/lime/venv/lib/python2.7/site-packages/newrelic-2.18.1.15/newrelic/api/function_trace.py", line 100, in literal_wrapper
    return wrapped(*args, **kwargs)
  File "/Users/ryanhinkel/web/lime/venv/lib/python2.7/site-packages/flask/app.py", line 1689, in wsgi_app
    response = self.make_response(self.handle_exception(e))
  File "/Users/ryanhinkel/web/lime/venv/lib/python2.7/site-packages/newrelic-2.18.1.15/newrelic/hooks/framework_flask.py", line 86, in wrapper_Flask_handle_exception
    return wrapped(*args, **kwargs)
  File "/Users/ryanhinkel/web/lime/venv/lib/python2.7/site-packages/flask/app.py", line 1687, in wsgi_app
    response = self.full_dispatch_request()
  File "/Users/ryanhinkel/web/lime/venv/lib/python2.7/site-packages/flask/app.py", line 1360, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/Users/ryanhinkel/web/lime/venv/lib/python2.7/site-packages/newrelic-2.18.1.15/newrelic/hooks/framework_flask.py", line 86, in wrapper_Flask_handle_exception
    return wrapped(*args, **kwargs)
  File "/Users/ryanhinkel/web/lime/venv/lib/python2.7/site-packages/flask/app.py", line 1358, in full_dispatch_request
    rv = self.dispatch_request()
  File "/Users/ryanhinkel/web/lime/venv/lib/python2.7/site-packages/flask/app.py", line 1344, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/Users/ryanhinkel/web/lime/venv/lib/python2.7/site-packages/flask_headers.py", line 11, in decorated_function
    resp = make_response(f(*args, **kwargs))
  File "/Users/ryanhinkel/web/lime/lime/root/root.py", line 56, in image
    return retrieve_image(image_name, Host.by_current_user().bucketname)
  File "/Users/ryanhinkel/web/lime/toolbox/tools.py", line 64, in retrieve_image
    bucket = conn.get_bucket(bucket_name)
  File "/Users/ryanhinkel/web/lime/venv/lib/python2.7/site-packages/boto/s3/connection.py", line 496, in get_bucket
    return self.head_bucket(bucket_name, headers=headers)
  File "/Users/ryanhinkel/web/lime/venv/lib/python2.7/site-packages/boto/s3/connection.py", line 515, in head_bucket
    response = self.make_request('HEAD', bucket_name, headers=headers)
  File "/Users/ryanhinkel/web/lime/venv/lib/python2.7/site-packages/boto/s3/connection.py", line 658, in make_request
    retry_handler=retry_handler
  File "/Users/ryanhinkel/web/lime/venv/lib/python2.7/site-packages/boto/connection.py", line 1047, in make_request
    retry_handler=retry_handler)
  File "/Users/ryanhinkel/web/lime/venv/lib/python2.7/site-packages/boto/connection.py", line 923, in _mexe
    request.body, request.headers)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 973, in request
    self._send_request(method, url, body, headers)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 1007, in _send_request
    self.endheaders(body)
  File "/Users/ryanhinkel/web/lime/venv/lib/python2.7/site-packages/newrelic-2.18.1.15/newrelic/hooks/external_httplib.py", line 53, in httplib_endheaders_wrapper
    return wrapped(*args, **kwargs)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 969, in endheaders
    self._send_output(message_body)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 829, in _send_output
    self.send(msg)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 791, in send
    self.connect()
  File "/Users/ryanhinkel/web/lime/venv/lib/python2.7/site-packages/newrelic-2.18.1.15/newrelic/hooks/external_httplib.py", line 29, in httplib_connect_wrapper
    return wrapped(*args, **kwargs)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 1176, in connect
    self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 387, in wrap_socket
    ciphers=ciphers)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 143, in __init__
    self.do_handshake()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 305, in do_handshake
    self._sslobj.do_handshake()
SSLError: [Errno 1] _ssl.c:507: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
di commented 9 years ago

Likely a DNS/firewall/etc issue. We should respond intelligently though, thanks for logging this.

di commented 9 years ago

The failing line is:

File "/Users/ryanhinkel/web/lime/toolbox/tools.py", line 64, in retrieve_image
    bucket = conn.get_bucket(bucket_name)