= phenomenon =
The latest FAS update in production is now causing in 500 errors when performing user queries in Fedora Community's People Search.
Fedora Community traceback from production: {{{ URL: http://localhost:10012/community/moksha_connector/fas/query/query_people/%7B%22filters%22%3A%20%7B%22prefix%22%3A%20%22a%22%7D%2C%20%22rows_per_page%22%3A%2020%2C%20%22start_row%22%3A%200%7D Module weberror.errormiddleware:162 in call << traceback_supplement = Supplement, self, environ sr_checker = ResponseStartChecker(start_response) app_iter = self.application(environ, sr_checker) return self.make_catching_iter(app_iter, environ, sr_checker) except:
app_iter = self.application(environ, sr_checker) Module repoze.tm:23 in call << try: result = self.application(environ, save_status_and_headers) except: self.abort() result = self.application(environ, save_status_and_headers) Module repoze.who.middleware:107 in call << wrapper = StartResponseWrapper(start_response) app_iter = app(environ, wrapper.wrap_start_response)
# The challenge decider almost(?) always needs information from the
app_iter = app(environ, wrapper.wrap_start_response) Module tw.core.middleware:43 in call << def call(self, environ, start_response): return self.wsgi_app(environ, start_response)
def wsgi_app(self, environ, start_response):
return self.wsgi_app(environ, start_response) Module tw.core.middleware:68 in wsgi_app << else: # Pass request downstream resp = req.get_response(self.application) return resp(environ, start_response) finally: resp = req.get_response(self.application) Module webob.request:918 in get_response << del exc_info else: status, headers, app_iter = self.call_application( application, catch_exc_info=False) return self.ResponseClass( status, headers, app_iter = self.call_application( Module webob.request:887 in call_application << captured[:] = [status, headers, exc_info] return output.append app_iter = application(self.environ, start_response) if (not captured or output): app_iter = application(self.environ, start_response) Module tw.core.resource_injector:68 in _injector << def _injector(environ, start_response): req = Request(environ) resp = req.get_response(app) content_type = resp.headers.get('Content-Type','text/plain').lower() if 'html' in content_type: resp = req.get_response(app) Module webob.request:918 in get_response << del exc_info else: status, headers, app_iter = self.call_application( application, catch_exc_info=False) return self.ResponseClass( status, headers, app_iter = self.call_application( Module webob.request:887 in call_application << captured[:] = [status, headers, exc_info] return output.append app_iter = application(self.environ, start_response) if (not captured or output): app_iter = application(self.environ, start_response) Module beaker.middleware:73 in call << self.cache_manager) environ[self.environ_key] = self.cache_manager return self.app(environ, start_response) return self.app(environ, start_response) Module beaker.middleware:152 in call << headers.append(('Set-cookie', cookie)) return start_response(status, headers, exc_info) return self.wrap_app(environ, session_start_response)
def _get_session(self):
return self.wrap_app(environ, session_start_response) Module routes.middleware:131 in call << r'\1', oldpath)
response = self.app(environ, start_response) # Wrapped in try as in rare cases the attribute will be gone already
response = self.app(environ, start_response) Module moksha.middleware.csrf:188 in call << return response(environ, start_response)
response = request.get_response(self.application) if environ.get(self.auth_state):
response = request.get_response(self.application) Module webob.request:918 in get_response << del exc_info else: status, headers, app_iter = self.call_application( application, catch_exc_info=False) return self.ResponseClass( status, headers, app_iter = self.call_application( Module webob.request:887 in call_application << captured[:] = [status, headers, exc_info] return output.append app_iter = application(self.environ, start_response) if (not captured or output): app_iter = application(self.environ, start_response) Module moksha.middleware.middleware:84 in call << def call(self, environ, start_response): self.register_livewidgets(environ) return self.mokshaapp(environ, start_response)
def register_livewidgets(self, environ):
return self.mokshaapp(environ, start_response) Module pylons.wsgiapp:125 in call << controller = self.resolve(environ, start_response) response = self.dispatch(controller, environ, start_response)
if 'paste.testing_variables' in environ and hasattr(response,
response = self.dispatch(controller, environ, start_response) Module pylons.wsgiapp:324 in dispatch << if log_debug: log.debug("Calling controller class with WSGI interface") return controller(environ, start_response)
def load_test_env(self, environ):
return controller(environ, start_response) Module moksha.middleware.extensionpoint:232 in call << response = Response(script) else: response = request.get_response(self.application)
return response(environ, start_response)
response = request.get_response(self.application) Module webob.request:918 in get_response << del exc_info else: status, headers, app_iter = self.call_application( application, catch_exc_info=False) return self.ResponseClass( status, headers, app_iter = self.call_application( Module webob.request:887 in call_application << captured[:] = [status, headers, exc_info] return output.append app_iter = application(self.environ, start_response) if (not captured or output): app_iter = application(self.environ, start_response) Module moksha.middleware.connector:86 in call << try: response = self._run_connector(environ, request, s[0], s[1], *s[2:], params) except IndexError, e: s[0], s[1], *s[2:], Module moksha.middleware.connector:136 in _run_connector << if conn: conn_obj = conn'connector_class' r = conn_obj._dispatch(op, path, remote_params, dispatch_params)
if pretty_print:
r = conn_obj._dispatch(op, path, remote_params, dispatch_params) Module moksha.connector.connector:81 in _dispatch << """ if op in ('request_data', 'call', 'query', 'query_model'): return getattr(self, op)(resource_path, params, _cookies, kwds) elif op in self._method_paths: return self._method_pathsop return getattr(self, op)(resource_path, params, _cookies, kwds) Module moksha.connector.connector:271 in query << order = sort_order, sort_col = sort_col, filters = filters, params) filters = filters, Module fedoracommunity.connectors.fasconnector:224 in query_people << f['search'] = p result = self.call('user/list', params=f) params=f) Module fedoracommunity.connectors.fasconnector:89 in call << if not params: params = {} return self.request_data(resource_path, params, _cookies)
def create_fas_object(self):
return self.request_data(resource_path, params, _cookies) Module fedoracommunity.connectors.fasconnector:77 in request_data << return self._fas_client.send_request(resource_path, auth_params = auth_params, req_params = params)
def introspect(self):
req_params = params) Module fedora.client.proxyclient:292 in send_request << except (KeyError, AttributeError): msg = _('Unknown HTTP Server Response') raise ServerError(url, http_status, msg)
# In case the server returned a new session cookie to us
raise ServerError(url, http_status, msg) ServerError: ServerError(https://admin.fedoraproject.org/accounts/user/list, 500, Unknown HTTP Server Response) }}}
Looked in the logs, this is a dupe of #2366
This is replicable in the staging environment. For instance: https://admin.stg.fedoraproject.org/accounts/user/list/U*?tg_format=json
Log in to comment on this ticket.