The core routing setup uses 'routes' which is set up to use directory scanning to find controllers. This can error out, as seen below, if there is permission issue. This directory scanning isn't necessary, since we use object dispatch for all the routing.
Traceback (most recent call last): File "/etc/httpd/conf.d/allura.wsgi", line 35, in <module> wsgipreload.preload(application, urls=urls) File "/var/local/env-allura/lib/python2.7/site-packages/wsgipreload-1.2-py2.7.egg/wsgipreload.py", line 36, in preload request(app, url, extra_environ) File "/var/local/env-allura/lib/python2.7/site-packages/wsgipreload-1.2-py2.7.egg/wsgipreload.py", line 25, in request a = app(environ, start_response) File "/var/local/env-allura/lib/python2.7/site-packages/Pylons-1.0-py2.7.egg/pylons/middleware.py", line 163, in __call__ self.app, new_environ, catch_exc_info=True) File "/var/local/env-allura/lib/python2.7/site-packages/Pylons-1.0-py2.7.egg/pylons/util.py", line 51, in call_wsgi_application output.extend(app_iter) File "/var/local/env-allura/lib/python2.7/site-packages/Paste-1.7.5.1-py2.7.egg/paste/registry.py", line 409, in streaming_iter for item in self.application(environ, start_response): File "/var/local/env-allura/lib/python2.7/site-packages/Ming-0.3.6dev_20130620-py2.7.egg/ming/odm/middleware.py", line 16, in __call__ result = self.app(environ, start_response) File "/var/local/allura/Allura/allura/lib/custom_middleware.py", line 58, in __call__ return self.app(environ, start_response) File "/var/local/env-allura/lib/python2.7/site-packages/EasyWidgets-0.2dev_20130603-py2.7.egg/ew/middleware.py", line 65, in __call__ result = self.app(environ, start_response) File "/var/local/allura/Allura/allura/lib/custom_middleware.py", line 171, in __call__ return resp(environ, start_response) File "/var/local/allura/Allura/allura/config/middleware.py", line 193, in AlluraGlobalsMiddleware return app(environ, start_response) File "/var/local/allura/Allura/allura/lib/custom_middleware.py", line 139, in __call__ return self._app(environ, session_start_response) File "/var/local/env-allura/lib/python2.7/site-packages/TimerMiddleware-0.4.2-py2.7.egg/timermiddleware/__init__.py", line 172, in __call__ resp = req.get_response(self.app) File "/var/local/env-allura/lib/python2.7/site-packages/WebOb-1.0.8-py2.7.egg/webob/request.py", line 1053, in get_response application, catch_exc_info=False) File "/var/local/env-allura/lib/python2.7/site-packages/WebOb-1.0.8-py2.7.egg/webob/request.py", line 1022, in call_application app_iter = application(self.environ, start_response) File "/var/local/allura/Allura/allura/lib/custom_middleware.py", line 95, in __call__ self.app, environ, catch_exc_info=True) File "/var/local/env-allura/lib/python2.7/site-packages/Pylons-1.0-py2.7.egg/pylons/util.py", line 48, in call_wsgi_application app_iter = application(environ, start_response) File "/var/local/env-allura/lib/python2.7/site-packages/Beaker-1.5.4-py2.7.egg/beaker/middleware.py", line 152, in __call__ return self.wrap_app(environ, session_start_response) File "/var/local/env-allura/lib/python2.7/site-packages/Routes-1.12.3-py2.7.egg/routes/middleware.py", line 80, in __call__ config.environ = environ File "/var/local/env-allura/lib/python2.7/site-packages/Routes-1.12.3-py2.7.egg/routes/__init__.py", line 22, in __setattr__ self.load_wsgi_environ(value) File "/var/local/env-allura/lib/python2.7/site-packages/Routes-1.12.3-py2.7.egg/routes/__init__.py", line 51, in load_wsgi_environ result = mapper.routematch(path) File "/var/local/env-allura/lib/python2.7/site-packages/Routes-1.12.3-py2.7.egg/routes/mapper.py", line 690, in routematch result = self._match(url, environ) File "/var/local/env-allura/lib/python2.7/site-packages/Routes-1.12.3-py2.7.egg/routes/mapper.py", line 609, in _match self.create_regs() File "/var/local/env-allura/lib/python2.7/site-packages/Routes-1.12.3-py2.7.egg/routes/mapper.py", line 560, in create_regs self._create_regs(*args, **kwargs) File "/var/local/env-allura/lib/python2.7/site-packages/Routes-1.12.3-py2.7.egg/routes/mapper.py", line 568, in _create_regs clist = self.controller_scan(self.directory) File "/var/local/env-allura/lib/python2.7/site-packages/Routes-1.12.3-py2.7.egg/routes/util.py", line 502, in controller_scan controllers = find_controllers(directory) File "/var/local/env-allura/lib/python2.7/site-packages/Routes-1.12.3-py2.7.egg/routes/util.py", line 497, in find_controllers prefix=prefix+fname+'/')) File "/var/local/env-allura/lib/python2.7/site-packages/Routes-1.12.3-py2.7.egg/routes/util.py", line 490, in find_controllers for fname in os.listdir(dirname): Permission denied: '/var/local/allura/Allura/allura/controllers/.~tmp~'
allura:db/6408
To test:
That'll fail on master, should work fine on this branch
and sfpy:db/6408