A problem occurred in a Python script. Here is the sequence of
function calls leading up to the error, in the order they occurred.
/home/user/webapps/mappacker/venv/local/lib/python2.7/site-packages/flup/server/fcgi_base.py in handler(self=<flup.server.fcgi.WSGIServer object>, req=<flup.server.fcgi_base.Request object>) |
1116 try:
|
1117 try:
|
=> 1118 result = self.application(environ, start_response)
|
1119 try:
|
1120 for data in result:
|
result = None, self = <flup.server.fcgi.WSGIServer object>, self.application = <Flask 'mappacker'>, environ = {'CONTENT_LENGTH': '', 'CONTENT_TYPE': '', 'DOCUMENT_ROOT': '/usr/share/nginx/html', 'DOCUMENT_URI': '/display/1', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': '*/*', 'HTTP_ACCEPT_ENCODING': 'gzip, br', 'HTTP_CDN_LOOP': 'cloudflare', 'HTTP_CF_CONNECTING_IP': '3.141.0.61', 'HTTP_CF_IPCOUNTRY': 'US', ...}, start_response = <function start_response> |
/home/user/webapps/mappacker/venv/local/lib/python2.7/site-packages/flask/app.py in __call__(self=<Flask 'mappacker'>, environ={'CONTENT_LENGTH': '', 'CONTENT_TYPE': '', 'DOCUMENT_ROOT': '/usr/share/nginx/html', 'DOCUMENT_URI': '/display/1', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': '*/*', 'HTTP_ACCEPT_ENCODING': 'gzip, br', 'HTTP_CDN_LOOP': 'cloudflare', 'HTTP_CF_CONNECTING_IP': '3.141.0.61', 'HTTP_CF_IPCOUNTRY': 'US', ...}, start_response=<function start_response>) |
1834 def __call__(self, environ, start_response):
|
1835 """Shortcut for :attr:`wsgi_app`."""
|
=> 1836 return self.wsgi_app(environ, start_response)
|
1837
|
1838 def __repr__(self):
|
self = <Flask 'mappacker'>, self.wsgi_app = <bound method Flask.wsgi_app of <Flask 'mappacker'>>, environ = {'CONTENT_LENGTH': '', 'CONTENT_TYPE': '', 'DOCUMENT_ROOT': '/usr/share/nginx/html', 'DOCUMENT_URI': '/display/1', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': '*/*', 'HTTP_ACCEPT_ENCODING': 'gzip, br', 'HTTP_CDN_LOOP': 'cloudflare', 'HTTP_CF_CONNECTING_IP': '3.141.0.61', 'HTTP_CF_IPCOUNTRY': 'US', ...}, start_response = <function start_response> |
/home/user/webapps/mappacker/venv/local/lib/python2.7/site-packages/flask/app.py in wsgi_app(self=<Flask 'mappacker'>, environ={'CONTENT_LENGTH': '', 'CONTENT_TYPE': '', 'DOCUMENT_ROOT': '/usr/share/nginx/html', 'DOCUMENT_URI': '/display/1', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': '*/*', 'HTTP_ACCEPT_ENCODING': 'gzip, br', 'HTTP_CDN_LOOP': 'cloudflare', 'HTTP_CF_CONNECTING_IP': '3.141.0.61', 'HTTP_CF_IPCOUNTRY': 'US', ...}, start_response=<function start_response>) |
1818 except Exception as e:
|
1819 error = e
|
=> 1820 response = self.make_response(self.handle_exception(e))
|
1821 return response(environ, start_response)
|
1822 finally:
|
response undefined, self = <Flask 'mappacker'>, self.make_response = <bound method Flask.make_response of <Flask 'mappacker'>>, self.handle_exception = <bound method Flask.handle_exception of <Flask 'mappacker'>>, e = HTTPError() |
/home/user/webapps/mappacker/venv/local/lib/python2.7/site-packages/flask/app.py in wsgi_app(self=<Flask 'mappacker'>, environ={'CONTENT_LENGTH': '', 'CONTENT_TYPE': '', 'DOCUMENT_ROOT': '/usr/share/nginx/html', 'DOCUMENT_URI': '/display/1', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': '*/*', 'HTTP_ACCEPT_ENCODING': 'gzip, br', 'HTTP_CDN_LOOP': 'cloudflare', 'HTTP_CF_CONNECTING_IP': '3.141.0.61', 'HTTP_CF_IPCOUNTRY': 'US', ...}, start_response=<function start_response>) |
1815 try:
|
1816 try:
|
=> 1817 response = self.full_dispatch_request()
|
1818 except Exception as e:
|
1819 error = e
|
response undefined, self = <Flask 'mappacker'>, self.full_dispatch_request = <bound method Flask.full_dispatch_request of <Flask 'mappacker'>> |
/home/user/webapps/mappacker/venv/local/lib/python2.7/site-packages/flask/app.py in dispatch_request(self=<Flask 'mappacker'>) |
1459 return self.make_default_options_response()
|
1460 # otherwise dispatch to the handler for that endpoint
|
=> 1461 return self.view_functions[rule.endpoint](**req.view_args)
|
1462
|
1463 def full_dispatch_request(self):
|
self = <Flask 'mappacker'>, self.view_functions = {'add_visit': <function add_visit>, 'display': <function display>, 'forgot': <function forgot>, 'index': <function index>, 'logout': <function logout>, 'remove_visit': <function remove_visit>, 'static': <bound method Flask.send_static_file of <Flask 'mappacker'>>}, rule = <Rule '/display/<owner_id>' (HEAD, OPTIONS, GET) -> display>, rule.endpoint = 'display', req = <Request 'http://mappacker.intuitivo.fr/display/1?image_only' [GET]>, req.view_args = {'owner_id': 1} |
/home/user/webapps/mappacker/mappacker.py in display(owner_id=1) |
209 image_url = "https://chart.googleapis.com/chart?cht=map:fixed=-60,-180,80,180&chs=600x350&chf=bg,s,9BB7CB&chld=" + '|'.join((c['iso2'] for c in countries if c['visited'])) + '&chco=F0EFEB|FF0000'
|
210 if "image_only" in request.args:
|
=> 211 response = make_response(urllib2.urlopen(image_url).read())
|
212 response.headers['Content-Type'] = 'image/png'
|
213 return response
|
response undefined, global make_response = <function make_response>, global urllib2 = <module 'urllib2' from '/usr/lib/python2.7/urllib2.pyc'>, urllib2.urlopen = <function urlopen>, image_url = u'https://chart.googleapis.com/chart?cht=map:fixed...|TH|TN|TR|UA|AE|GB|US|VA|VN|VI&chco=F0EFEB|FF0000', ).read undefined |
/usr/lib/python2.7/urllib2.py in urlopen(url=u'https://chart.googleapis.com/chart?cht=map:fixed...|TH|TN|TR|UA|AE|GB|US|VA|VN|VI&chco=F0EFEB|FF0000', data=None, timeout=<object object>, cafile=None, capath=None, cadefault=False, context=None) |
152 else:
|
153 opener = _opener
|
=> 154 return opener.open(url, data, timeout)
|
155
|
156 def install_opener(opener):
|
opener = <urllib2.OpenerDirector instance>, opener.open = <bound method OpenerDirector.open of <urllib2.OpenerDirector instance>>, url = u'https://chart.googleapis.com/chart?cht=map:fixed...|TH|TN|TR|UA|AE|GB|US|VA|VN|VI&chco=F0EFEB|FF0000', data = None, timeout = <object object> |
/usr/lib/python2.7/urllib2.py in open(self=<urllib2.OpenerDirector instance>, fullurl=u'https://chart.googleapis.com/chart?cht=map:fixed...|TH|TN|TR|UA|AE|GB|US|VA|VN|VI&chco=F0EFEB|FF0000', data=None, timeout=<object object>) |
433 for processor in self.process_response.get(protocol, []):
|
434 meth = getattr(processor, meth_name)
|
=> 435 response = meth(req, response)
|
436
|
437 return response
|
response = <addinfourl at 139759182352184 whose fp = <socket._fileobject object>>, meth = <bound method HTTPErrorProcessor.http_response of <urllib2.HTTPErrorProcessor instance>>, req = <urllib2.Request instance> |
/usr/lib/python2.7/urllib2.py in http_response(self=<urllib2.HTTPErrorProcessor instance>, request=<urllib2.Request instance>, response=<addinfourl at 139759182352184 whose fp = <socket._fileobject object>>) |
546 if not (200 <= code < 300):
|
547 response = self.parent.error(
|
=> 548 'http', request, response, code, msg, hdrs)
|
549
|
550 return response
|
request = <urllib2.Request instance>, response = <addinfourl at 139759182352184 whose fp = <socket._fileobject object>>, code = 404, msg = 'Not Found', hdrs = <httplib.HTTPMessage instance> |
/usr/lib/python2.7/urllib2.py in error(self=<urllib2.OpenerDirector instance>, proto=404, *args=({301: [<urllib2.HTTPRedirectHandler instance>], 302: [<urllib2.HTTPRedirectHandler instance>], 303: [<urllib2.HTTPRedirectHandler instance>], 307: [<urllib2.HTTPRedirectHandler instance>], 'default': [<urllib2.HTTPDefaultErrorHandler instance>]}, 'default', 'http_error_default', <urllib2.Request instance>, <addinfourl at 139759182352184 whose fp = <socket._fileobject object>>, 404, 'Not Found', <httplib.HTTPMessage instance>)) |
471 if http_err:
|
472 args = (dict, 'default', 'http_error_default') + orig_args
|
=> 473 return self._call_chain(*args)
|
474
|
475 # XXX probably also want an abstract factory that knows when it makes
|
self = <urllib2.OpenerDirector instance>, self._call_chain = <bound method OpenerDirector._call_chain of <urllib2.OpenerDirector instance>>, args = ({301: [<urllib2.HTTPRedirectHandler instance>], 302: [<urllib2.HTTPRedirectHandler instance>], 303: [<urllib2.HTTPRedirectHandler instance>], 307: [<urllib2.HTTPRedirectHandler instance>], 'default': [<urllib2.HTTPDefaultErrorHandler instance>]}, 'default', 'http_error_default', <urllib2.Request instance>, <addinfourl at 139759182352184 whose fp = <socket._fileobject object>>, 404, 'Not Found', <httplib.HTTPMessage instance>) |
/usr/lib/python2.7/urllib2.py in _call_chain(self=<urllib2.OpenerDirector instance>, chain={301: [<urllib2.HTTPRedirectHandler instance>], 302: [<urllib2.HTTPRedirectHandler instance>], 303: [<urllib2.HTTPRedirectHandler instance>], 307: [<urllib2.HTTPRedirectHandler instance>], 'default': [<urllib2.HTTPDefaultErrorHandler instance>]}, kind='default', meth_name='http_error_default', *args=(<urllib2.Request instance>, <addinfourl at 139759182352184 whose fp = <socket._fileobject object>>, 404, 'Not Found', <httplib.HTTPMessage instance>)) |
405 func = getattr(handler, meth_name)
|
406
|
=> 407 result = func(*args)
|
408 if result is not None:
|
409 return result
|
result undefined, func = <bound method HTTPDefaultErrorHandler.http_error...lt of <urllib2.HTTPDefaultErrorHandler instance>>, args = (<urllib2.Request instance>, <addinfourl at 139759182352184 whose fp = <socket._fileobject object>>, 404, 'Not Found', <httplib.HTTPMessage instance>) |
/usr/lib/python2.7/urllib2.py in http_error_default(self=<urllib2.HTTPDefaultErrorHandler instance>, req=<urllib2.Request instance>, fp=<addinfourl at 139759182352184 whose fp = <socket._fileobject object>>, code=404, msg='Not Found', hdrs=<httplib.HTTPMessage instance>) |
554 class HTTPDefaultErrorHandler(BaseHandler):
|
555 def http_error_default(self, req, fp, code, msg, hdrs):
|
=> 556 raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
|
557
|
558 class HTTPRedirectHandler(BaseHandler):
|
global HTTPError = <class 'urllib2.HTTPError'>, req = <urllib2.Request instance>, req.get_full_url = <bound method Request.get_full_url of <urllib2.Request instance>>, code = 404, msg = 'Not Found', hdrs = <httplib.HTTPMessage instance>, fp = <addinfourl at 139759182352184 whose fp = <socket._fileobject object>> |